2012-04-21 21 views
1

我有一個用Cocoa編寫的命令行工具。我們稱之爲processFile。因此,如果我在終端中並鍵入命令./processFile foo,它會在與processFile的可執行文件相同的目錄中查找名爲foo.html的文件。如果它找到一個,它會讀取它並執行一些操作來創建fooProcessed.html。可可 - 確定從哪個目錄啓動工具?

現在我想修改我的工具,以便它在從中啓動它的目錄中查找foo.html。所以,如果我在與當前目錄〜/文檔/ HTML的終端,並且processFile可執行文件在USR/bin,然後我輸入

processFile foo 

它會發現和處理文件〜/文檔/ foo.html 。

問題是我不知道如何獲取工具被調用的目錄。我怎樣才能做到這一點?

回答

3

這是當前的工作目錄。首先,任何試圖使用其名稱和路徑訪問文件的嘗試都將自動使用工作目錄。所以,如果你只是採取「富」,追加「。html」,並試圖打開該文件,這將工作。如果用戶指定了一個相對路徑,比如「subdir/foo」,那也可以。它將解析從當前工作目錄開始的相對路徑。

您還可以使用getcwd()例程查詢工作目錄。

+1

或者通過爲[currentDirectoryPath]請求一個NSFileManager對象(http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/Reference/Reference.html#//apple_ref/OCC/instm /的NSFileManager/currentDirectoryPath)。 – 2012-04-21 19:13:31

+0

啊,好點。我已經忘記了這種方法。 – 2012-04-21 19:22:50