是否有一种方法与FileManager和NSBundle一起工作,以获得支持/ applications目录中给定类型文



我正在创建一个Commandline工具,它将从用户获取输入,以搜索支持特定文件扩展名的特定应用程序。例如,如果我输入mp4,它可能会显示QuickTime。我正在寻找特定的FileManager操作来在Swift中实现这一点。

我想你是在找NSWorkspace.urlForApplication(toOpen:)。它查找如果双击一个文件将被打开的应用程序,并返回它的URL。因为它需要一个文件才能工作,所以您需要首先在某个地方创建一个临时的空文件,并使用所需的扩展名,然后调用此方法。

let tempFileURL = FileManager.default.temporaryDirectory.appendingPathComponent("foo.mp4")
FileManager.default.createFile(atPath: tempFileURL.path, contents: nil, attributes: nil)
// this gives me the URL for QuickTime Player:
// file:///System/Applications/QuickTime%20Player.app/
let url = NSWorkspace.shared.urlForApplication(toOpen: tempFileURL)

最新更新