我试图从目录中获取文件名。现在我有两种方法来访问该位置:一种是通过“打开面板”,我可以通过从“打开包内容”查找器窗口打开的文件拖动文件来设置目录,手动选择所有文件(结束执行)。其次 – 通过迭代 URL。第二种方法不起作用,因为:
The file “glyphs” couldn’t be opened because you don’t have permission to view it
我可以从 Finder 中查看它,通过打开面板从同一应用程序访问......嗯。 我创建这样的 URL:
print ("filename <\(filename)>, \(isDirectory ? "Directory" : "File")")
let urlf = url.appendingPathComponent(filename, isDirectory: isDirectory)
print( "\(urlf.isFileURL ? "this is a file" : "not a file:") \(urlf)" )
此代码的输出是:
filename <glyphs>, Directory
this is a file: file:///Users/lukasz/Documents/ClanTestDesignSpace/masters/ClnNew-BlackUltraExpandedHigh.ufo/glyphs/
URL 没问题,我在 finder 中“复制字形作为路径名”并比较了两者:除了最后一个斜杠之外,它们完全相同。但它不再是目录这是一个文件
。
无论如何,我将此 URL 发送至:
let fileURLs = try fileManager.contentsOfDirectory(at: urlf, includingPropertiesForKeys: nil)
总是返回错误。
我尝试更改 includePropertiesForKeys: [URLResourceKey.nameKey]
机器人,但没有效果。
我检查了沙箱(用户选择的文件:读/写
)。我还可以检查什么?
最佳答案
从沙盒应用程序中,您无法以编程方式访问任何目录中的文件。在沙盒设置中启用用户选择的文件:读/写
访问权限后,您可以使用NSOpenPanel
/NSSavePanel
让用户选择文件他们想要授予访问权限,但如果没有明确的用户交互,您将无法访问您尝试访问的 ~/Documents
文件夹。
关于swift - 文件管理器返回错误我无权查看包中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52761038/