実行中ファイル または 実行中アセンブリ のファイルパスを取得する サンプルコード を以下にまとめます。
以下の サンプルコード では、実行中アセンブリが存在するディレクトリを取得したいます。
実行中アセンブリのファイルパスを取得した後、 Path.GetDirectoryName() を利用してディレクトリパスを取得しています。
サンプルコード
namespace Sample
{
using System.IO;
using System.Reflection;
public class Config
{
/// <summary>
/// 設定ファイル名
/// </summary>
private static string fileName = @"app.config";
/// <summary>
/// 設定ファイルパス
/// </summary>
private static string filePath = Path.Combine(
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
Config.fileName);
/// <summary>
/// Config クラスのインスタンスを初期化します。
/// </summary>
public Config()
{
}
}
}
…で、結論ですが、実行中アセンブリ情報が取得できれば良いので、以下のどちらかでファイルパスを取得することができます。
staticなフィールドで取得する場合
Assembly.GetExecutingAssembly().Location
インスタンス中で取得する場合
this.GetType().Assembly.Location