2

我的 cocoa 命令行程序的目标是获取一个文件名参数并将其导入程序进行解析。我希望能够在 mac os 中从终端调用我的程序,比如“ParseFile”,参数为“Filename.txt”(example$ ParseFile filename.txt),但到目前为止我不明白我的程序是如何知道的Filename.txt 的绝对路径。

例如,当您使用“cp filename.txt /whateverfolder/filename2.txt”时,您正在将文件“filename.txt”从终端的当前工作目录复制到根目录上名为whateverfolder 的文件夹中。cp怎么知道filename.txt的绝对路径?如果我的桌面上有 filename.txt,cp 就会知道我发送了它/Users/username/Desktop/filename.txt。这就是我希望我的程序知道的。

我已经能够让我的程序知道它在哪里执行,但这与 bash 终端的当前工作目录在被调用时所处的位置非常不同。

我该如何解决这个问题?非常感谢

4

2 回答 2

4

使用方法NSFileManagercurrentDirectoryPath

NSString *currentpath = [[NSFileManager defaultManager] currentDirectoryPath];
于 2013-03-09T07:32:41.470 回答
2

cp怎么知道filename.txt的绝对路径?

它不知道,也不必知道。它可以只使用相对路径。当前工作目录继承自父进程。

我已经能够让我的程序知道它在哪里执行,但这与 bash 终端的当前工作目录在被调用时所处的位置非常不同。

你什么意思?可执行文件所在的目录?这通常没有太大的兴趣。在此上下文中起作用的唯一其他目录是当前工作目录。如果你已经得到了,你还需要什么?

于 2013-03-09T07:49:34.260 回答