1

Xcodeを使用してObjective-Cでプログラムを作成しています。私のプログラムは次のようにファイルを作成します。

[@"" writeToFile:fileName atomically:YES encoding:NSUTF8StringEncoding error:NULL];

実行可能ファイルと同じディレクトリにファイルを作成したいのですが。Xcodeからプログラムを実行すると、ファイルは期待どおりにデバッグディレクトリに作成されます。

ただし、.appファイルを実行すると、ファイルはルートディレクトリに作成されます。.appファイルが置かれているディレクトリにファイルを作成するようにプログラムを取得するにはどうすればよいですか。

どうもありがとう。

編集:これはMacOSアプリケーションです

EDIT2:ええと、.appディレクトリに書き込むべきではないようです。bbumとPaulRに感謝します。それを行う適切な方法は何ですか?具体的には、これが私が行っていることです。ユーザーがアプリケーションのボタンをクリックするたびに、シリアルポートに接続されたハードウェアが大量のデータを送信し、それが新しいファイルに書き込まれます。これは、アプリケーションの実行中に何度でも発生する可能性があるため、多数のファイルが作成される可能性があります。それらをすべて同じフォルダに作成してほしい。

4

2 に答える 2

2

アプリケーションの初期作業ディレクトリは、起動に使用された方法 (例: Finder、Terminal (経由)、Xcode、gdb、サードパーティ ユーティリティなど)に依存するため、決して想定しないでください。open適切な API を使用して、一時ファイルやユーザー固有のファイル、または実行する必要があるものを格納する適切なディレクトリを見つける必要があります。これは、アプリのバンドル内にあるべきではなく、最初の作業ディレクトリからの相対パスであってはなりません。

于 2011-02-16T19:34:22.390 に答える
1

ラッパー内でファイルを作成したくありません。.appそれは決して正しい答えではありません。YourApp.appアプリケーションは、現在のユーザーがラッパーへの書き込みアクセス権を持っていない場所に簡単にインストールできます。

(たとえば、私のメイン ユーザー アカウントは非管理者であり、すべてのアプリケーションは管理者書き込み専用でインストールされています。アプリ ラッパーに書き込めないためにアプリが動作しない場合、アプリはゴミ箱に移動します。)

ファイルを保存する場所の概要については、この質問を参照してください。ファイルの役割に依存します。

于 2011-02-16T18:46:27.323 に答える