iPhone API是否允许应用程序读/写iPhone的文件系统?

时间:2009-09-30 22:14:03

标签: iphone api

我的iPhone应用程序(好吧,它的想法)需要对iPhone的文件系统进行更改。 iPhone API是否允许这样做?

3 个答案:

答案 0 :(得分:8)

您的应用程序有自己的文件系统,您可以读取和写入,但您无法访问其他任何内容,即您无法访问其他应用程序或操作系统本身的文件系统区域。

答案 1 :(得分:2)

是Cocoa Touch for iPhone OS允许文件访问。需要注意的是,它自然只允许文件访问当前用户具有读写权限的文件。每个应用程序作为单个用户运行,并且实际上只能访问它自己的小沙箱文件。因此,您将无法访问系统文件或其他应用程序中的文件。

您可能希望应用访问两个主要目录:

  • NSDocumentDirectory - 类似于您自己的Documents文件夹,在您同步设备时会备份此文件夹的内容。
  • NSCachesDirectory - 这个位于/ Library / Caches /中,并且在同步设备时不会备份。

使用NSSearchPathForDirectoriesInDomains函数获取这些目录的路径。在搜索时,您将获得一系列潜在路径,只要您只搜索用户域,就可以安全地使用第一个路径。例如:

NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                     NSUserDomainMask, YES);
NSString* docsPath = [paths objectAtIndex:0];

一旦有了路径,就可以使用默认文件管理器来处理文件。例如,删除文件:

NSFileManager* fm = [NSFileManager defaultManager];
[fm removeItemAtPath:filePath error:NULL];

答案 2 :(得分:0)

我刚刚编写了一个关于如何使用NSMutableArrays执行此操作的教程,您可以查看它应该对您有所帮助。 http://idevkit.com/iphonedev/2009/09/saving-nsmutablearrays/

如果你对它有任何疑问,那就知道并加重了它