JScript.NET で exe ファイル自身が存在するディレクトリを調べる

久々に JScript.NET のお話。JScript.NET は Microsoft が開発した言語で、同じく Microsoft 製の JScript をベースにしている。JavaScript に近い構文で、.NET Framework 基盤を利用できることが特徴。

今回は、jsc.exe で生成した JScript.NET の実行ファイルから、自身が存在するディレクトリのパスを取得する方法を紹介する。

JScript.NET をコンパイルする jsc.exe については以下の記事を参照。

exe 自身が存在するディレクトリパスを取得するには、以下のように書く。

// exe 自身のフルパスからフォルダパス (最後の \ なし) を取得する
var exePath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

これを使えば、例えば「exe ファイルと同じ階層にあるファイルを取得する」といった処理が書けるようになる。

// 先程の変数 exePath を利用し、
// exe 自身が存在するフォルダと同じ階層にあるファイルのフルパスを取得する
var testFile = new FileInfo(exePath + "/test.txt");

// ファイルの存在チェック
if(!testFile.Exists) {
  Console.Error.WriteLine("File does not exist.");
  Environment.Exit(1);
}