Macos Swift 3读取终端当前工作目录

Macos Swift 3读取终端当前工作目录,macos,swift3,Macos,Swift3,我想开发一个应用程序来推广在Mac上使用终端时的体验。我想从终端获取当前工作目录(cwd)。我如何实现它 我注意到中的答案非常好,但似乎它仍然不能完美地解决我的问题。我从苹果的文档中学习了Process().currentDirectoryPath,它能做到我需要的技巧吗?我可以像下面那样使用它吗 let path = Process().currentDirectoryPath 我是swift和Xcode的新手,请帮助我!谢谢 更新:谢谢大家!似乎两者都有 let path = fileM

我想开发一个应用程序来推广在Mac上使用终端时的体验。我想从终端获取当前工作目录(cwd)。我如何实现它

我注意到中的答案非常好,但似乎它仍然不能完美地解决我的问题。我从苹果的文档中学习了
Process().currentDirectoryPath
,它能做到我需要的技巧吗?我可以像下面那样使用它吗

let path = Process().currentDirectoryPath
我是swift和Xcode的新手,请帮助我!谢谢


更新:谢谢大家!似乎两者都有

let path = fileManager.default.currentDirectoryPath

Process()
一个暂时适用于我。这两者之间有什么区别吗?

我问了同样的问题,选择了后者:

let path=FileManager.default.currentDirectoryPath
为了回答您更新的问题,
Process()
方法和
FileManager
方法的区别在于
Process().currentDirectoryPath
方法准备创建一个新的子流程,然后告诉您子流程将使用的工作目录。当然,子进程与父进程具有相同的工作目录,但是仅仅为了找到工作目录而创建一个新的
process
实例是浪费的

一定要使用
FileManager
方法,因为它返回当前进程使用的工作目录,而不创建任何子进程或任何其他开销

资料来源:


你到底想用这个目录实现什么?@Alexander我想获得路径并绘制目录中的所有元素,就像制作GUI一样。我是一名学生,只想练习一个小项目。FileManager.default.currentDirectoryPath怎么样?@Pang我应该选择哪一个?是文件管理器还是进程管理器?我刚买了我的Macbook,我还在探索如何使用xcode。你试过你发布的代码了吗?你得到了什么?似乎仍然像它应该的那样完全有效,但似乎答案得到了一些否决票?为什么要向下投票?为了论证起见,AFAIK简单地声明一个进程var实际上不会派生一个新的子进程,这在启动它之前是不会发生的。尽管如此,您是对的,FileManager方法是正确的方法,即使Process()只是浪费了一个临时变量。观察得好,Guillaume Laurent
FileManager。默认值。currentDirectoryPath
不适用于沙盒应用程序: