実行中のプロセス自身のパスをとる

もくじ
https://tera1707.com/entry/2022/02/06/144447

やりたいこと

実行してるexe自身のフルパス、もしくはそれが保存されてるフォルダのパスを取りたい。

サンプルコード

// フォルダ
Console.WriteLine(Environment.CurrentDirectory);
Console.WriteLine(Directory.GetCurrentDirectory());
Console.WriteLine(System.AppDomain.CurrentDomain.BaseDirectory);

// フルパス(ファイル名込み)
Console.WriteLine(Assembly.GetExecutingAssembly().Location);
Console.WriteLine(Environment.GetCommandLineArgs()[0]);

Assembly.GetExecutingAssembly().Locationは、「発行」で「単一ファイルの作成」をすると、nullになってしまう。

その場合は、ディレクトリを取る場合はSystem.AppDomain.CurrentDomain.BaseDirectoryを使うべしとMSのページにあった。 ファイル名込みで取りたい場合は、Environment.GetCommandLineArgs()[0]でよさそう。