【问题标题】:Creating Folder in Application Support if not Exists如果不存在,则在应用程序支持中创建文件夹
【发布时间】:2018-03-24 10:13:43
【问题描述】:

我正在尝试在应用程序支持目录中创建一个文件夹。

let path = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)[0]
let fileurl =  path.appendingPathComponent("my folder")
do {
try FileManager.default.createDirectory(atPath:String(describing: fileurl), withIntermediateDirectories: true, attributes: nil)
} catch {
 print(error)
}

但是没有创建文件夹。我做错了什么?

【问题讨论】:

标签: swift macos nsfilemanager


【解决方案1】:

发生错误是因为您传递了包含 file:// 方案的 URL 的字符串表示,但 createDirectory(atPath 需要一个没有 file:// 方案的 path

解决方法就是这么简单:(总是)使用FileManager的URL相关API

try FileManager.default.createDirectory(at: fileurl, withIntermediateDirectories: true)

请考虑一个更有意义的变量命名

  • path其实是url
  • fileurl实际上是folderurl

【讨论】:

  • 谢谢...这个方法是否检查目录是否已经存在?
  • 不,你必须检查一下。
  • @techno 不需要检查是否存在。如果目录不存在,它只会创建目录。
猜你喜欢
  • 2018-02-10
  • 2017-06-28
  • 2020-07-12
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
  • 2013-01-17
  • 2023-03-16
相关资源
最近更新 更多