2

私のココア コマンド ライン プログラムの目標は、ファイルの名前である引数を取得し、解析のためにプログラムにインポートすることです。Mac OS のターミナルから、引数「Filename.txt」(example$ ParseFile filename.txt) を使用して「ParseFile」と言ってプログラムを呼び出すことができるようにしたいのですが、これまでのところ、プログラムがどのように認識できるかを理解できません。 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 に答える