1

我有一个用 Cocoa 编写的命令行工具。我们称它为 processFile。因此,如果我在终端中输入命令 ./processFile foo,它会在与 processFile 的可执行文件相同的目录中查找名为 foo.html 的文件。如果它找到了,它会读取它并做一些事情来创建 fooProcessed.html。

现在我想修改我的工具,使其在启动它的目录中查找 foo.html。因此,如果我在当前目录 ~/documents/html 的终端中,并且 processFile 可执行文件在 usr/bin 中,我输入

processFile foo

它将查找并处理文件 ~/documents/foo.html。

问题是我不知道如何获取调用该工具的目录。我怎样才能做到这一点?

4

1 回答 1

3

那是当前的工作目录。首先,任何仅使用文件名而不使用路径访问文件的尝试都将自动使用工作目录。所以,如果你简单地使用“foo”,附加“.html”,然后尝试打开文件,那将起作用。如果用户指定了一个相对路径,比如“subdir/foo”,那也可以。它将解析从当前工作目录开始的相对路径。

您还可以使用getcwd()例程查询工作目录。

于 2012-04-21T17:06:23.770 回答