アプリケーションが実行されているパス(実行可能ファイルではなく)を取得する必要があります。
System.AppDomain.CurrentDomain.BaseDirectory()
ローカルマシンで& "/images/image.jpg"を使用して上記のステートメントを実行すると正常に動作しますが、別のマシンにアプリケーションをインストールすると、ファイルが見つからず、余分なパス情報がいくつかあります。
アプリが実行されているディレクトリだけが必要です。 Visual Studio 2008を使用してVB.NETでコーディングしています。
ありがとう!
Dim strPath As String = System.IO.Path.GetDirectoryName( _
System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
これはgoogleの最初の投稿なので、利用可能なさまざまな方法とそれらの比較方法を投稿すると思いました。残念ながら、ここでテーブルを作成する方法がわかりませんので、これはイメージです。それぞれのコードは、完全修飾名を使用した画像の下にあります。
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))
Dim P As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
P = New Uri(P).LocalPath
Environmentクラスを思い出す前に、これを知る必要があり、ここに来ました。
他の誰かがこの問題を抱えている場合は、これを使用してください:Environment.CurrentDirectory
。
例:
Dim dataDirectory As String = String.Format("{0}\Data\", Environment.CurrentDirectory)
Visual Studioからデバッグモードで実行する場合:
C:\Development\solution folder\application folder\bin\debug
これは私が必要とした正確な動作であり、そのシンプルで簡単なものです。
Applicationクラスのstatic StartupPath プロパティを使用できます。
以下を書くことができます。
Path.Combine(Path.GetParentDirectory(GetType(MyClass).Assembly.Location), "Images\image.jpg")