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 的文件系统?的主要内容,如果未能解决你的问题,请参考以下文章

如何 Flutter 将文件写入 iOS iPhone“在我的手机上查找”文件夹

我可以使用 PCSC API 向智能卡写入和读取数据吗?

读取和写入 Facebook 的应用程序

如何打开一个文件进行写入以安全地允许其他程序读取?

为啥有人说Apple 不允许iphone运行后台任务?

允许 ASP.NET Core API 应用程序的写入权限