web-dev-qa-db-ja.com

アプリケーションが実行されている実行可能ディレクトリ?

アプリケーションが実行されているパス(実行可能ファイルではなく)を取得する必要があります。

System.AppDomain.CurrentDomain.BaseDirectory()

ローカルマシンで& "/images/image.jpg"を使用して上記のステートメントを実行すると正常に動作しますが、別のマシンにアプリケーションをインストールすると、ファイルが見つからず、余分なパス情報がいくつかあります。

アプリが実行されているディレクトリだけが必要です。 Visual Studio 2008を使用してVB.NETでコーディングしています。

ありがとう!

18
JPJedi
Dim strPath As String = System.IO.Path.GetDirectoryName( _
    System.Reflection.Assembly.GetExecutingAssembly().CodeBase)

方法:実行中のアプリケーションのパス(MSDN)の決定 から取得

25
Justin Niessner

これはgoogleの最初の投稿なので、利用可能なさまざまな方法とそれらの比較方法を投稿すると思いました。残念ながら、ここでテーブルを作成する方法がわかりませんので、これはイメージです。それぞれのコードは、完全修飾名を使用した画像の下にあります。

enter image description here

My.Application.Info.DirectoryPath

Environment.CurrentDirectory

System.Windows.Forms.Application.StartupPath

AppDomain.CurrentDomain.BaseDirectory

System.Reflection.Assembly.GetExecutingAssembly.Location

System.Reflection.Assembly.GetExecutingAssembly.CodeBase

New System.UriBuilder(System.Reflection.Assembly.GetExecutingAssembly.CodeBase)

Path.GetDirectoryName(Uri.UnescapeDataString((New System.UriBuilder(System.Reflection.Assembly.GetExecutingAssembly.CodeBase).Path)))

Uri.UnescapeDataString((New System.UriBuilder(System.Reflection.Assembly.GetExecutingAssembly.CodeBase).Path))
26
Derek Ziemba
Dim P As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
P = New Uri(P).LocalPath
12
MrCalvin

Environmentクラスを思い出す前に、これを知る必要があり、ここに来ました。

他の誰かがこの問題を抱えている場合は、これを使用してください:Environment.CurrentDirectory

例:

Dim dataDirectory As String = String.Format("{0}\Data\", Environment.CurrentDirectory)

Visual Studioからデバッグモードで実行する場合:

C:\Development\solution folder\application folder\bin\debug

これは私が必要とした正確な動作であり、そのシンプルで簡単なものです。

10
Jason Alls

Applicationクラスのstatic StartupPath プロパティを使用できます。

5
Mike Dinescu

以下を書くことができます。

Path.Combine(Path.GetParentDirectory(GetType(MyClass).Assembly.Location), "Images\image.jpg")
0
SLaks