コンソールアプリケーションでアプリケーションのパスを見つけるにはどうすればいいですか?
Windows Forms]1では、Application.StartupPathを使って現在のパスを見つけることができますが、コンソールアプリケーションではこれが使えないようです。
Application.StartupPath
System.Reflection.Assembly.GetExecutingAssembly().Location1
System.Reflection.Assembly.GetExecutingAssembly()
Location
ディレクトリが欲しいだけなら、System.IO.Path.GetDirectoryNameと組み合わせてください。
System.IO.Path.GetDirectoryName
1※Mindor氏のコメントによると、以下のようになります。 System.Reflection.Assembly.GetExecutingAssembly().Location は、実行中のアセンブリが現在置かれている場所を返しますが、これは、実行していないときにアセンブリが置かれている場所である場合もあれば、そうでない場合もあります。アセンブリをシャドーコピーしている場合は、テンポラリディレクトリのパスを取得します。System.Reflection.Assembly.GetExecutingAssembly().CodeBaseは、アセンブリの「恒久的な」パスを返します。
System.Reflection.Assembly.GetExecutingAssembly().Location
System.Reflection.Assembly.GetExecutingAssembly().CodeBase
以下のコードで、現在のアプリケーションのディレクトリを取得することができます。
AppDomain.CurrentDomain.BaseDirectory
しようと思っているかもしれません。
System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)
System.Reflection.Assembly.GetExecutingAssembly()
.Location
1ディレクトリが欲しいだけなら、
System.IO.Path.GetDirectoryName
と組み合わせてください。以下のコードで、現在のアプリケーションのディレクトリを取得することができます。
しようと思っているかもしれません。