如何在Swift中获取正在运行的程序路径?

时间:2019-02-25 09:34:01

标签: swift macos

我为 Mac OS 开发了一个 Swift 程序,并将该程序和数据放入一个USB中。当我将USB插入Mac时,打开USB文件夹并运行该程序,该程序将读取USB中的数据,但是我不知道如何在程序中获取数据路径。

在Windows C#中,我可以使用以下命令:

String programPath = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
to get the program path(ex. F:\), and then I can use the path to get the data path(ex. F:\Data).

有人知道如何在Swift中做同样的事情吗?

1 个答案:

答案 0 :(得分:3)

您使用以下方式获取可执行文件的路径

let programPath = Bundle.main.executablePath

或捆绑包本身的路径

let bundlePath = Bundle.main.bundlePath

但这是包中可执行文件或包中可执行文件的路径,而不是封闭卷。

要获取封闭卷,请使用与URL相关的API

let bundleURL = Bundle.main.bundleURL
let parentVolumeURL = try! bundleURL.resourceValues(forKeys: [.volumeURLKey]).volume