|
.NET TIPS 実行ファイルのパスを取得するには?デジタルアドバンテージ2003/04/18 |
![]() |
|
|
|
アプリケーション実行時の実行可能ファイル(exeファイル)のパスを取得するには、主に次の2通りの方法がある。
Assemblyクラスを利用したパスの取得
1つはアセンブリ情報からパスを得る方法だ(アセンブリについては「インサイド .NET Framework 第1回」を参照)。これにはまず、Assemblyクラス(System.Reflection名前空間)のGetEntryAssemblyメソッドにより、エントリ・ポイントを含むアセンブリ(Assemblyオブジェクト)を取得する。多くのexeファイルにおいては、これはMainメソッドを含んだアセンブリとなっている。
そして、そのAssemblyオブジェクトのLocationプロパティから、実行されているアプリケーションの完全パス(フルパス)を取得することができる。
Assembly myAssembly = Assembly.GetEntryAssembly();
string path = myAssembly.Location;
次のサンプル・プログラムでは、このようにして取得したフルパスを画面に表示している。
|
|
| 実行ファイルのフルパスを表示するC#のサンプル・プログラム(exepath1.cs) | |
GetEntryAssemblyメソッドではなく、GetExecutingAssemblyメソッドを使用すると、現在のコードを実行しているアセンブリ(Assemblyオブジェクト)を取得することができる。
MSDNのドキュメント「App Object Changes in Visual Basic .NET」では、Visual Basic 6.0におけるApp.PathやApp.EXENameと等価となる方法として、こちらのメソッドを使用したやり方が紹介されている。ただし、アセンブリの構成にもよるが、ライブラリの中でこの方法によりパスを取得した場合などでは、ライブラリ・ファイルへのパスとなることがある点に注意が必要だ。
Applicationクラスを利用したパスの取得
Applicationクラス(System.Windows.Forms名前空間)のExecutablePathプロパティを使用すると、アプリケーションを開始したパスを取得することができる。
string path = Application.ExecutablePath;
次のサンプル・プログラムは、この方法により実行時のフルパスを表示する。
|
|
| 実行ファイルのフルパスを表示するサンプル・プログラム(exepath2.cs) | |
Applicationクラスは、名前空間がSystem.Windows.Formsとなっているが、Windowsアプリケーション以外の形式のアプリケーションからも呼び出すことは可能だ。![]()
| カテゴリ:クラス・ライブラリ 処理対象:パス 使用ライブラリ:Assemblyクラス(System.Reflection名前空間) 使用ライブラリ:Applicationクラス(System.Windows.Forms名前空間) |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


