文件管理器 returns 错误我无权查看包中的文件

fileManger returns Error I have no permission to view files in Package

我正在尝试从目录中获取文件名。现在我有两种方法可以访问那个地方:一种是通过打开面板,我可以通过从 "Open Package Content" Finder window 打开的文件拖动文件来设置目录,手动 select 所有文件(结束执行)。其次——通过迭代 URLs。第二种方法不起作用,因为:

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 中创建了 "copy glyphs as pathname" 并比较了两者:除了最后一个斜杠外,它们完全相同。但它不再是目录 this is a file.

无论如何我把这个URL发给:

let fileURLs = try fileManager.contentsOfDirectory(at: urlf, includingPropertiesForKeys: nil)

总是returns错误。 我尝试更改 includingPropertiesForKeys: [URLResourceKey.nameKey] 机器人但没有效果。

我检查了沙箱 (User Selected File : read/write)。我可以检查更多什么?

在沙盒应用程序中,您无法以编程方式访问任何目录中的文件。在沙盒设置中启用 User Selected File : read/write 访问权限后,您可以使用 NSOpenPanel/NSSavePanel 让您的用户 select 他们想要授予访问权限的文件,但没有明确的用户interaction 您无法访问您尝试访问的 ~/Documents 文件夹。