Katalog wykonywalny, z którego uruchamiana jest aplikacja?
Muszę pobrać ścieżkę (Nie plik wykonywalny), z której uruchamiana jest moja aplikacja:
System.AppDomain.CurrentDomain.BaseDirectory()
Kiedy uruchamiam powyższe polecenie z & " / images / image.jpg " na moim lokalnym komputerze działa dobrze, ale po zainstalowaniu aplikacji na innym komputerze mówi, że nie może znaleźć pliku i jest wiele dodatkowych informacji o ścieżce.
Potrzebuję tylko katalogu, gdzie aplikacja jest uruchomiona. Koduję w VB.NET z Visual Studio 2008.
Dzięki!6 answers
Dim strPath As String = System.IO.Path.GetDirectoryName( _
System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
Zaczerpnięte z Jak: określić ścieżkę wykonującej aplikację (MSDN)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-07 14:58:36
To jest pierwszy post w google, więc pomyślałem, że opublikuję różne sposoby, które są dostępne i jak je porównać. Niestety nie mogę wymyślić, jak stworzyć tutaj tabelę, więc jest to obraz. Kod dla każdego znajduje się pod obrazkiem, używając w pełni kwalifikowanych nazw.
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))
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-07 06:10:23
Dim P As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
P = New Uri(P).LocalPath
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-07 09:28:54
[3]} musiałem to wiedzieć i przyszedłem tutaj, zanim przypomniałem sobie klasę ochrony środowiska.
W przypadku, gdyby ktoś inny miał ten problem, po prostu użyj tego: Environment.CurrentDirectory
.
Przykład:
Dim dataDirectory As String = String.Format("{0}\Data\", Environment.CurrentDirectory)
Po uruchomieniu z Visual Studio w trybie debugowania:
C:\Development\solution folder\application folder\bin\debug
To jest dokładnie to zachowanie, którego potrzebowałem, i jest dość proste i proste.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-23 08:22:11
Możesz użyć właściwości statycznej StartupPath klasy aplikacji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-07 14:58:51
Możesz napisać:
Path.Combine(Path.GetParentDirectory(GetType(MyClass).Assembly.Location), "Images\image.jpg")
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-07 15:25:51