【发布时间】:2012-03-23 10:50:03
【问题描述】:
在我的 iPhone 应用程序中,我正在下载一些二进制文件。我想将这些文件存储在设备的本地文件夹中。而且我想将这些文件设置为只读/隐藏。可能吗?这样我就可以为文件提供更多安全性。有没有办法实现这个?请给我一些很好的解释以及一些代码示例。 谢谢
【问题讨论】:
标签: iphone ios download readonly hidden-files
在我的 iPhone 应用程序中,我正在下载一些二进制文件。我想将这些文件存储在设备的本地文件夹中。而且我想将这些文件设置为只读/隐藏。可能吗?这样我就可以为文件提供更多安全性。有没有办法实现这个?请给我一些很好的解释以及一些代码示例。 谢谢
【问题讨论】:
标签: iphone ios download readonly hidden-files
您在应用中创建的所有文件都只能由您的应用访问。
但你可以将它设置为不可变,我不知道它会对你有什么帮助。
NSDictionary* att = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:[NSNumber numberWithBool:YES], nil] forKeys:[NSArray arrayWithObjects:@"NSFileImmutable", nil]];
[filemgr createDirectoryAtPath:@"YourPath" withIntermediateDirectories:YES attributes:nil error:nil];
[filemgr createFileAtPath:@"YourPath/yourFile.txt" contents:data attributes:att];
【讨论】:
您可以使用NSFileManager对文件设置POSIX权限,使用方法:
- (BOOL)setAttributes:(NSDictionary *)attributes ofItemAtPath:(NSString *)path error:(NSError **)error
我不确定这实际上给了你多少安全性。每个 iOS 应用程序都有自己的沙箱,除了系统之外,唯一可以接触您的文件的应用程序就是您的。所以你只是保护你自己的文件。
【讨论】:
+(BOOL)saveFile2DocDirectory:(NSData*)recievedData:(NSString*)moduleNam {
NSString *location=[NSString stringWithFormat:@"%@",moduleNam];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fPath = [documentsDirectory stringByAppendingPathComponent:location];
//NSMutableDictionary *courseInfoDict=[[NSMutableDictionary alloc]init];
return [recievedData writeToFile:fPath options:NSDataWritingFileProtectionComplete error:nil];
}
//这个功能可以帮到你。
【讨论】: