Swift查询App所在位置:Cocoa应用编译后当前目录为/
获取Cocoa App的安装路径(Swift)
嘿,这个问题我太熟了!你现在用fileManger.currentDirectoryPath拿到根目录/是很正常的——因为这个属性返回的是当前工作目录,而不是App的实际安装路径。运行编译后的App时,系统默认的工作目录就是根目录,哪怕关闭了沙箱也一样。
要获取你的App所在的位置,应该用Bundle.main来访问App的主Bundle信息,这才是正确的姿势!
替换你的代码试试:
@IBAction func showMeCurrentDIrector(_ sender: Any) { let mainBundle = Bundle.main // 两种格式可选:URL 或者 字符串路径 let appLocationURL = mainBundle.bundleURL let appLocationPath = mainBundle.bundlePath // 显示字符串路径到Label lblShow.stringValue = appLocationPath print(type(of: appLocationPath)) print(appLocationPath) }
为什么这个能行?
Bundle.main指向当前运行的App的主资源包,它的bundleURL属性会返回App包的完整URL(比如file:///Applications/YourAppName.app/),bundlePath则是对应的字符串格式路径。- 不管你是在Xcode里运行,还是把App打包后放到Applications目录,这个方法都能准确拿到App的位置。
如果之后你需要访问App包内部的资源文件(比如图片、配置文件),也可以基于Bundle.main来获取,比如用mainBundle.path(forResource: "filename", ofType: "txt")这类方法。
内容的提问来源于stack exchange,提问作者Alisanie
相关产品推荐
相关产品推荐

