1

デスクトップにファイルを保存しています。プログラムでファイルを開くと、作業ディレクトリがデスクトップに変わります。これは、プログラムが作業ディレクトリで必要なファイルを検索するときに、必要なファイルを読み込めないことを意味します。作業ディレクトリがこのように変更されないようにする方法はありますか?

4

5 に答える 5

3

OFN_NOCHANGEDIR と呼ばれる、現在のディレクトリが変更されないように設定できるフラグがあります。

http://msdn.microsoft.com/en-us/library/ms646839(v=vs.85).aspx

于 2011-05-12T12:17:13.397 に答える
2

起動時に作業ディレクトリを保存し、絶対パスを使用できます。実際、現在の作業ディレクトリに本当に依存したい場合を除き、常に絶対パスでファイルを開く方がよいでしょう。

于 2011-05-12T12:03:31.473 に答える
2

プロセスの場所を特定し、それを他のファイルの場所のキーとして使用する方がよいでしょうか? 作業ディレクトリに影響を与えるプログラムを起動する方法は多数あります。

参照:プロセスの場所を取得し、実行可能ファイル名を削除する方法の適切な説明については、こちらの回答を参照してください (コメントを参照してください)。

基本的に、次を使用します: GetModuleFileNameまたはGetModuleFileNameEx.

次に: PathRemoveFileSpecファイル名を削除するには

于 2011-05-12T12:06:59.850 に答える
2

ファイルを開いても、現在のディレクトリは変更されません。おそらく、一般的なファイルを開くダイアログを使用していますか? これは、現在のディレクトリがどのように変更されるかについてすべて説明する記事です。

于 2011-05-12T12:17:20.340 に答える
1

そのために使用SetCurrentDirectoryします。を使用して実行可能ファイルを見つけることができますGetModuleFileName

TCHAR szFileName[MAX_PATH];

GetModuleFileName( NULL, szFileName, MAX_PATH )

... then compute the correct directory
SetCurrentDirectory(path);
于 2011-05-12T12:03:14.980 に答える