Swift:如何打开带有相关应用程序的文件?

时间:2016-06-21 23:12:41

标签: swift

我想在macOS上用Excel打开.xls文件。 我只找到了C#的例子,但没有找到Swift的例子。

加分问题:是否可以使用Excel启动该文件,即使此文件扩展名与Excel无关?

1 个答案:

答案 0 :(得分:8)

NSWorkspace.sharedWorkspace().openURL(fileURL)NSWorkspace.sharedWorkspace().openFile(fileURL.path!)以便按默认应用程序打开文件。

如果要强制Excel,可以使用NSWorkspace.sharedWorkspace().openFile(fileURL.path!, withApplication: "Microsoft Excel")

如果您更喜欢强制使用Excel并使用网址对象,则会有过多的openURLs(_:withAppBundleIdentifier:options:additionalEventParamDescriptor:launchIdentifiers)

虽然这不是什么大问题,但我正按照Swift 4.2更新语法 -

NSWorkspace.shared.openFile(fileURL!.path)
NSWorkspace.shared.openFile(fileURL!.path, withApplication: "Microsoft Excel")
NSWorkspace.shared.open([fileURL!], withAppBundleIdentifier: "com.microsoft.Excel", options: NSWorkspace.LaunchOptions.withErrorPresentation, additionalEventParamDescriptor: nil, launchIdentifiers: nil)

要获取任何应用的Bundle Identifier,请在终端中使用此命令

 osascript -e 'id of app "*app_name*"'