swift - 文件管理器返回错误我无权查看包中的文件

标签 swift macos file-manager

我试图从目录中获取文件名。现在我有两种方法来访问该位置:一种是通过“打开面板”,我可以通过从“打开包内容”查找器窗口打开的文件拖动文件来设置目录,手动选择所有文件(结束执行)。其次 – 通过迭代 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/

相关文章:

objective-c - 为什么 UITableviewcell 不完整的滑动行充当完整的滑动行?

ios - firebase 配置崩溃

objective-c - 如何在Cocoa中关闭蓝牙设备和声音设备?

javascript - 更改 eXtplorer 文本编辑器 EditArea 的高度

ios - 在 TabBarController 项中有一个 NavigationController

swift - 截取应用程序的屏幕截图,然后使用 Swift 附加到消息中

cocoa - 在 Cocoa 中,在释放对象时,我是否需要从接收 KVO 通知中删除该对象?

macos - 结束 NSTableView 上的编辑(基于 View )

python - 是否可以在 PyQt 应用程序中预览 pdf?

android - 从 Android 设备的 SD 卡中存在的 txt 文件读取数据