K3-*_*rnc 6 url macos shell path
在Apple Mac OS X上的PyQt4中,我们以以下格式获取到拖放文件的文件引用URL:
file:///.file/id=123456.78901
Run Code Online (Sandbox Code Playgroud)
有趣的是,这不是有效的文件URL,或者至少在大多数应用程序中不能透明地解析- /.file/id=...文件系统中没有文件。
仅使用外壳,如何将这个NSURL或文件引用或别名(或任何被称为)解除引用到文件系统上文件的有效路径?
小智 5
在 Swift 中,您可以使用 URL.standardized 从参考 URL 获取有效路径。因此,在 Swift 4 中 - 要从拖放文件中获取文件名,您可以执行以下操作...
let fileType = NSPasteboard.PasteboardType (kUTTypeFileURL as String)
extension NSPasteboardItem {
func fileURL ()->URL? {
if let refURL = self.string(forType: fileType) {
return URL (fileURLWithPath: refURL).standardized
}
return nil
}
}
Run Code Online (Sandbox Code Playgroud)
可以使用默认 OS X 安装上可用的AppleScriptosascript解释器,使用以下脚本运行:
osascript -e 'get posix path of posix file "file:///.file/id=123.456" -- kthxbai'
Run Code Online (Sandbox Code Playgroud)
印刷/Users/josh/Downloads/paste-10837081.py。