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

问题描述 投票:0回答:3

我的 iPhone 应用程序(好吧,大概是这样)需要对 iPhone 的文件系统进行更改。 iPhone API 允许吗?

ios cocoa-touch filesystems
3个回答
8
投票

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


2
投票

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

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

  • NSDocumentDirectory
    - 类似于您自己的文档文件夹,当您同步设备时会备份该文件夹的内容。
  • NSCachesDirectory
    - 此驻留在 /Library/Caches/ 中,同步设备时不会备份。

您可以使用

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

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

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

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

0
投票

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

如果您还有任何疑问,请告诉我,我会补充

© www.soinside.com 2019 - 2024. All rights reserved.