我想开发一款应用来推广在Mac上使用终端时的体验。我需要从终端获取当前工作目录(cwd)。我该如何实现它? 我注意到Get terminal output after a command swift中的答案非常好,但它似乎仍然无法完美地解决我的问题。我从Apple的文档https://developer.apple.com/reference/foundation/process学到了Process()。currentDirectoryPath它是否可以实现我需要的技巧?我可以像下面一样使用它吗?
let path = Process().currentDirectoryPath
我是swift和Xcode的新手,请帮助我!谢谢!
更新:谢谢你们!似乎两者都是
let path = fileManager.default.currentDirectoryPath
和Process()暂时为我工作。这两者之间有什么不同吗?
答案 0 :(得分:7)
我有同样的问题,并采用后一种选择:
let path = FileManager.default.currentDirectoryPath
要回答您更新的问题,Process()
和FileManager
方法之间的区别在于Process().currentDirectoryPath
方法准备创建新的子流程,然后告诉您子流程的工作目录将使用。当然,子进程与父进程具有相同的工作目录,但创建新的Process
实例只是为了查找工作目录是浪费的。
绝对使用FileManager
方法,因为它返回当前进程使用的工作目录,而不创建任何子进程或任何其他开销。
来源:
https://developer.apple.com/documentation/foundation/filemanager/1409234-default
https://developer.apple.com/documentation/foundation/filemanager/1410766-currentdirectorypath