1 Comments
 VB.NETで実行ファイルがあるフォルダパスを取得するには「Application.StartupPath()」ってもんを使います。この中にはアプリケーションの実行ファイル名を含まないパスが入っています。

Dim MyPath As String
MyPath = Application.StartupPath()

 いたって簡単、ごく普通の使い方ですね。さてここで問題が発生。前回のエントリで紹介したDLLDLL内ではStartupPathが見れません。DLL内でDLLを利用している実行ファイルのパスが知りたい場合はどうすればいいのでしょうか? この場合にはDLL内のメソッドを呼び出したアプリケーションを知る方法が準備されていますのでそちらを利用します。

 アプリケーションを表すクラスは「Assembly」クラスです。メソッド内で呼び出しもとAssemblyを知るためにGetCallingAssemblyというメソッドが準備されています。VB.NETのマニュアルにも使用方法がありますが、私が利用した際に使ったコードは以下のとおり。

Dim PathText As String
PathText = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetCallingAssembly().Location)

 AssemblyクラスのLocationプロパティには対象Assemblyの実行ファイルパスが入っているのでGetDirectoryNameをつかってフォルダ名に変更します。これでDLLの呼び出し元実行ファイルが入っているフォルダパスが取得できます。

 もっと簡単な方法があると思われますが、まあこんなんでどうでしょうか?

ちなみにこちらのページも参考になりますよ
実行中のプログラムのパスを取得する
ひらくん
Posted byひらくん

Comments - 1

There are no comments yet.
-  
管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

2007/09/02 (Sun) 13:10 | EDIT | REPLY |   

Leave a reply

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。