fileManger返回错误我无权查看软件包中的文件

时间:2018-10-11 13:16:28

标签: swift macos file-manager

我正在尝试从目录获取文件名。现在,我有两种方法可以访问该位置:一种是通过“打开面板”,通过在“打开包内容”查找器窗口中拖动文件来设置目录,然后手动选择所有文件(结束执行)。其次–通过迭代URL。第二种方法由于以下原因而无法工作:

The file “glyphs” couldn’t be opened because you don’t have permission to view it

我可以从Finder中查看它,也可以通过“打开面板”从同一应用程序中访问...嗯。 我创建如下网址:

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中创建了“将字形复制为路径名”,并将两者进行了比较:除了最后一个斜杠外,它们完全相同。但这不再是目录this is a file

无论如何,我将此网址发送给:

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

始终返回错误。 我试图更改includingPropertiesForKeys: [URLResourceKey.nameKey]机器人无效。

我检查了沙箱(User Selected File : read/write)。我还能检查些什么?

1 个答案:

答案 0 :(得分:2)

在沙盒应用程序中,无法以编程方式访问任何目录中的文件。在沙盒设置中启用User Selected File : read/write访问后,您可以使用NSOpenPanel / NSSavePanel来让用户选择他们希望访问的文件,但是如果没有明确的用户交互,您将无法访问您尝试访问的~/Documents文件夹。