iPhone API 是不是允许应用程序读取/写入 iPhone 的文件系统?
Posted
技术标签:
【中文标题】iPhone API 是不是允许应用程序读取/写入 iPhone 的文件系统?【英文标题】:Does iPhone API allow application read/write to iPhone's filesystem?iPhone API 是否允许应用程序读取/写入 iPhone 的文件系统? 【发布时间】:2009-09-30 22:14:02 【问题描述】:我的 iPhone 应用程序(好吧,这个想法)需要对 iPhone 的文件系统进行更改。 iPhone API 允许吗?
【问题讨论】:
【参考方案1】:您的应用有自己的文件系统,您可以从中读取和写入,但您无法访问除此之外的任何内容,即您无法访问其他应用或操作系统本身的文件系统区域。
【讨论】:
【参考方案2】:是的,适用于 iPhone OS 的 Cocoa Touch 允许文件访问。需要注意的是,它自然只允许对当前用户具有读写权限的文件进行文件访问。每个应用程序都以单个用户身份运行,并且实际上只能访问它自己的小型文件沙箱。因此您将无法访问系统文件或来自其他应用程序的文件。
您可能希望您的应用访问两个主要目录:
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];
【讨论】:
【参考方案3】:我刚刚写了一篇关于如何使用 NSMutableArrays 执行此操作的教程,您可以查看它应该对您有所帮助。 http://idevkit.com/iphonedev/2009/09/saving-nsmutablearrays/
如果您对此有任何疑问,请让我知道并添加它
【讨论】:
以上是关于iPhone API 是不是允许应用程序读取/写入 iPhone 的文件系统?的主要内容,如果未能解决你的问题,请参考以下文章