在 iPhone 上创建文件夹的权限

Posted

技术标签:

【中文标题】在 iPhone 上创建文件夹的权限【英文标题】:Permission to create folder on iPhone 【发布时间】:2013-09-02 12:58:12 【问题描述】:

挖了半天,我发现我没有创建文件夹的权限,那么如何获得创建文件夹的权限呢?

[[NSFileManager defaultManager] createDirectoryAtPath:[NSString stringWithFormat:@"%@/%@",downloadLocation,kAmazonCatalogsPrefix]
                          withIntermediateDirectories:YES
                                           attributes:nil
                                                error:&error];

Error Domain=NSCocoaErrorDomain Code=513 "The operation couldn’t be completed. (Cocoa error 513.)" UserInfo=0x1f18a8b0 NSFilePath=/var/mobile/Applications/AB570058-4E4A-41B2-9E40-5C93316D6307/eCatalogs, NSUnderlyingError=0x1f18a830 "The operation couldn’t be completed. Operation not permitted"

【问题讨论】:

【参考方案1】:

您不能修改已编译应用的捆绑文件夹的内容。这是因为捆绑包是已编译的应用程序。这可以防止恶意软件在安装后修改应用程序的可能性。

运行时生成的文件应保存到DocumentsTempCache 文件夹。这些文件夹只能由您的应用访问。没有其他应用可以访问这些文件夹的内容。

示例代码:

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

NSError *error;
[[NSFileManager defaultManager] createDirectoryAtPath:[documentsDirectory stringByAppendingPathComponent:@"yourFolderName"] withIntermediateDirectories:NO attributes:nil error:&error];

【讨论】:

我可以在 Documents 文件夹中创建一个文件夹吗? @LordZsolt:是的,这就是我在示例代码中提到的。在我的示例代码中,documentsDirectoryDocumentDirectory 的目录路径。【参考方案2】:

检查以下 SWIFT 答案:

var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String

[NSFileManager.defaultManager().createDirectoryAtPath(paths.stringByAppendingPathComponent("Hello"), withIntermediateDirectories: false, attributes: nil, error: nil)]


println(paths)

【讨论】:

这个问题没有被标记为 swift :| @LordZsolt 不,但它被标记为 ios,因此 Swift 可能对某些人有用! 我仍然非常鄙视在 Obj-C 和 swift 中存在相同问题的问题/答案。解决方法是一样的,只是语法不同。但仍然 +1。 除了很多时候快速的答案完全不同。冷静。

以上是关于在 iPhone 上创建文件夹的权限的主要内容,如果未能解决你的问题,请参考以下文章

从 iPhone 应用程序在 iCloud 上创建文件夹

从 PC 上 iPhone App 的文件夹中下载创建的文件

如何设置UNIX/Linux中新创建目录或文件的默认权限

如何从 UIWebView 在 iPhone 上创建 .webarchive 文件?

创建文档文件夹 iPhone SDK

已安装Docker并尝试使用权限拒绝消息创建新文件