1. ホーム
  2. c#

[解決済み】現在のフォルダのパスを取得する

2022-03-30 15:57:05

質問

ファイルを変換するプログラムを作りたいのですが、どうすればいいですか?ユーザーが実行ファイルを任意のディレクトリに置くことができ、そのプログラムを実行する(.exeをダブルクリックする)と、次のような処理が行われるようにしたいと思います。 exeファイルが存在する現在のフォルダー内のすべてのファイル . プログラムが現在実行されているパスを判断するにはどうしたらよいでしょうか?

試してみた System.Windows.Forms.Application.StartupPath が、それは間違った方法であるようだ。

何かアイデアはありますか?

解決方法は?

あなたは ではなく 使用 Directory.GetCurrentDirectory() というのも、特にショートカットでプログラムを実行した場合、カレントディレクトリが実行フォルダと異なる場合があるからです。

を使うのがよいでしょう。 Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); を使用します。これは、現在実行中のアセンブリが存在するパス名を返します。

私の提案するアプローチでは、実行中のアセンブリ、エントリアセンブリ、その他のロードされたアセンブリを区別することができます。 ソナー・ギョウニュル と回答されています。

System.IO.Path.GetDirectoryName(Application.ExecutablePath);

で十分な場合もあります。この場合、次のようになります。

System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);