【问题标题】:I cannot able to create directory in my file manager我无法在文件管理器中创建目录
【发布时间】:2019-06-21 06:42:54
【问题描述】:

Error Domain=NSCocoaErrorDomain Code=513 "您没有权限将文件 "subash" 保存在文件夹 "tmp" 中。" UserInfo={NSFilePath=file:///private/var/mobile/Containers/Data/Application/902FE064-C3EC-42B5-A8F8-3D2923947067/tmp/subash, NSUnderlyingError=0x281e5c6f0 {Error Domain=NSPOSIXErrorDomain Code=1 "操作不允许"}}

do {
  var mytmppath:String=FileManager.default.temporaryDirectory.absoluteString+"subash"
  try FileManager.default.createDirectory(atPath: mytmppath, withIntermediateDirectories: true, attributes: nil)

  print( FileManager.default.subpaths(atPath: FileManager.default.temporaryDirectory.absoluteString))
} catch {
  print(error)
}

【问题讨论】:

标签: ios swift


【解决方案1】:

您使用了错误的 API。

absoluteString 用于远程 URL,因为 API 还将返回 URL 方案(例如,http://,在本例中为 file://)。

要从文件系统 URL 中获取路径,您必须使用 path

尽管如此,强烈建议您不要将路径与+ 连接起来。始终使用与 URL 相关的 API 和专用的路径操作方法。

do {
    let defaultManager = FileManager.default
    let temporarySubURL = defaultManager.temporaryDirectory.appendingPathComponent("subash")
    try defaultManager.createDirectory(at: temporarySubURL, withIntermediateDirectories: true, attributes: nil)

    print( defaultManager.subpaths(atPath: FileManager.default.temporaryDirectory.path))
} catch {
    print(error)
}

【讨论】:

    【解决方案2】:

    用objective c试试这个

    e NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
    documentsPath = [documentsPath stringByAppendingPathComponent:currentUser.mobileNumber];
    NSString *filePathAndDirectory = [documentsPath stringByAppendingPathComponent:directoryName];
    NSError *error;
    
    if (![[NSFileManager defaultManager] createDirectoryAtPath:filePathAndDirectory
                                   withIntermediateDirectories:YES
                                                    attributes:nil
                                                         error:&error])
    {
        NSLog(@"Create directory error: %@", error);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      • 2020-10-18
      • 1970-01-01
      • 2023-03-16
      • 2014-09-21
      相关资源
      最近更新 更多