【发布时间】:2019-03-15 06:33:45
【问题描述】:
在我的 macOS 应用程序中,我尝试使用以下扩展名创建目录
extension URL {
static func createFolder(folderName: String, folderPath:URL) -> URL? {
let fileManager = FileManager.default
let folderURL = folderPath.appendingPathComponent(folderName)
// If folder URL does not exist, create it
if !fileManager.fileExists(atPath: folderURL.path) {
do {
// Attempt to create folder
// try fileManager.createDirectory(at: folderURL, withIntermediateDirectories: true, attributes: nil)
// try fileManager.createDirectory(atPath: folderURL.path, withIntermediateDirectories: true, attributes: nil)
try fileManager.createDirectory(atPath: folderURL.relativePath, withIntermediateDirectories: true, attributes: nil)
} catch {
print(error.localizedDescription + ":\(folderURL.path)")
return nil
}
}
return folderURL
}
}
当我调用这个调用它给我错误
您无权在文件夹中保存文件“FolderName” “SelectedFolder”.:/Users/USERNAME/Workspace/SelectedFolder/FolderName
我查看了类似的post 并尝试了所有方法,但它仍然给我错误,我在这里遗漏了什么吗?任何帮助表示赞赏
【问题讨论】:
-
如果应用程序被沙盒化,则行为是正常的。您无权在应用程序容器之外进行写入。
-
我在模拟器上运行它。所以,你的意思是说,一旦我导出我的应用程序,我就能做到这一点?我现在应该如何测试它?
-
不,你不会。这是沙盒的规则。
-
你能告诉我应该把我的示例文件夹放在哪里进行测试吗?
-
尝试对您的应用进行代码签名并检查。这会有所帮助。
标签: macos file-manager macos-mojave swift4.2 macos-app-extension