Je dois obtenir le chemin (pas l'exécutable) depuis lequel mon application s'exécute:
System.AppDomain.CurrentDomain.BaseDirectory()
Lorsque j'exécute l'instruction ci-dessus avec & "/images/image.jpg" sur mon ordinateur local, cela fonctionne correctement, mais lorsque j'installe l'application sur un autre ordinateur, il ne peut pas trouver le fichier et contient beaucoup d'informations supplémentaires sur le chemin.
J'ai juste besoin du répertoire où l'application est en cours d'exécution. Je code dans VB.NET avec Visual Studio 2008.
Merci!
Dim strPath As String = System.IO.Path.GetDirectoryName( _
System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
Tiré de COMMENT FAIRE: Déterminer le chemin d'accès de l'application en cours d'exécution (MSDN)
Ceci est le premier post sur google, j'ai donc pensé poster différentes manières disponibles et leur comparaison. Malheureusement, je n'arrive pas à comprendre comment créer un tableau ici, c'est donc une image. Le code pour chacun d'eux est sous l'image en utilisant des noms complets.
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
J'avais besoin de le savoir et je suis venu ici avant de me souvenir de la classe Environnement.
Si quelqu'un d'autre avait ce problème, utilisez simplement ceci: Environment.CurrentDirectory
.
Exemple:
Dim dataDirectory As String = String.Format("{0}\Data\", Environment.CurrentDirectory)
Lorsqu'il est exécuté à partir de Visual Studio en mode débogage
C:\Development\solution folder\application folder\bin\debug
C’est le comportement exact dont j’avais besoin, et il est assez simple et direct.
Vous pouvez utiliser la propriété statique StartupPath de la classe Application.
Vous pouvez écrire ce qui suit:
Path.Combine(Path.GetParentDirectory(GetType(MyClass).Assembly.Location), "Images\image.jpg")