5

通常のコンソール アプリケーション (またはその他のアプリケーション) を使用していて、Windows エクスプローラーを使用してファイルを .exe ファイルにドラッグすると (ファイルを「コマンド ライン入力」として使用するため)、現在のディレクトリが設定されます。アプリケーションが配置されているディレクトリではなく、他のディレクトリ(ホームフォルダー?)に移動します。アプリケーションをダブルクリックして起動すると、現在のディレクトリが正しく設定されます。

これの理由は何ですか?アプリケーションのフォルダを現在のディレクトリとして使用する方法はありますか?

4

2 に答える 2

3

autoitscript.comでこれを見つけた理由を探しています:

[アプリケーション] Explorer の作業ディレクトリが何であれ、単純に継承します。

これは、たとえばキーボードのプログラム可能なキーなど、私自身の観察と一致しています。

回避策は、作業ディレクトリをリセットすることです。C# では、次のように実行できます。

System.Environment.CurrentDirectory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

コマンドラインを使用せずに Linux で mono アプリケーションを起動する場合にも、これを行う必要があります。

于 2009-05-19T14:01:34.120 に答える
0

これがまさに、アプリが最初から作業ディレクトリに依存してはならない理由です。ファイルのフル パスは、コマンド ラインで指定されます。必要に応じてパスを解析します。

于 2009-07-16T00:25:24.770 に答える