2020年10月02日
川俣晶の縁側ソフトウェアC# コーディング How To total 1470 count

【中級】実行中の実行ファイルの名前を得る

Written By: 川俣 晶連絡先

実行している自分自身のファイル名を得る §

 実行している時、実行している実行ファイルのファイル名を得る方法はあるのでしょうか?

 あります。

 実行中のアセンブリはAssembly.GetExecutingAssembly()で取得できます。

 取得したオブジェクトのLocationプロパティを見るとそのファイルのフルパスが格納されています。

罠の数々 §

  • Locationプロパティの動的に構成されたアセンブリの場合、値はないかもしれないし、ネットから得た場合はURLかもしれない
  • .NET Coreまたは.NET 5以降の場合、実行ファイルの拡張子はEXEではなくDLLになっている。注意しよう。.NET Frameworkで実行するとEXEのファイル名が取れるはずだ。

参考リンク §

Assembly.GetExecutingAssembly メソッド

Assembly.Location プロパティ

 AssemblyクラスにはGetExecutingAssembly以外にもアセンブリを取得するAPIがあって、実行中のアセンブリ以外にも取得できるものがある。どんなAPIで何が取得できるか、上記リンクから辿って確認してみよう。

 また、Location プロパティ以外にどんな情報を取得できるか上記リンクを辿って調べてみよう。

リポジトリ §

https://github.com/autumn009/cshowto

MyExeFileName §

using System;

using System.Reflection;

class Program

{

    static void Main()

    {

        var fileName = Assembly.GetExecutingAssembly().Location;

        Console.WriteLine(fileName);

    }

}

実行結果 (パスの詳細は実行する環境ごとに変わる)

C:\~~~\MyExeFileName\bin\Debug\net5.0\MyExeFileName.dll

COOL C# CREW

C#ハウツー連載の解説増量、カラーのソース、新規書き下ろし追加の読みやすい単行本はこちら。

C#ハウツー: 逆引き入門・こんな機能はどう書くの?