Получение абсолютного пути исполняемого файла, используя С#?
Посмотрите на этот псевдокод:
string exe_path = system.get_exe_path()
print "This executable is located in " + exe_path
Если я построю вышеуказанную программу и поместил исполняемый файл в C:/meow/
, он будет распечатывать This executable is located in C:/meow/
при каждом запуске, независимо от текущего рабочего каталога.
Как я мог легко выполнить это с помощью C#
?
Ответы
Ответ 1
В MSDN есть статья, в которой говорится использовать System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase
; если вам нужен каталог, используйте System.IO.Path.GetDirectoryName
для этого результата.
Или есть более короткая Application.ExecutablePath
, которая "Получает путь для исполняемого файла, который запустил приложение, включая имя исполняемого файла", поэтому это может означать, что он немного менее надежный в зависимости от того, как было запущено приложение.
Ответ 2
AppDomain.CurrentDomain.BaseDirectory
Ответ 3
using System.Reflection;
string myExeDir = new FileInfo(Assembly.GetEntryAssembly().Location).Directory.ToString();
Ответ 4
"Получает путь или UNC-адрес загруженного файла, который содержит манифест."
Смотрите: http://msdn.microsoft.com/en-us/library/system.reflection.assembly.location.aspx
Application.ResourceAssembly.Location
Ответ 5
var dir = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Я подпрыгнул за лучший ответ и обнаружил, что не получаю то, что ожидал. Мне пришлось прочитать комментарии, чтобы найти то, что я искал.
По этой причине я отправляю ответ, указанный в комментариях, чтобы дать ему доступ, который он заслуживает.
Ответ 6
Предположим, что у меня есть файл .config в консольном приложении, и теперь я получаю как показано ниже.
Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName + "\\YourFolderName\\log4net.config";
Ответ 7
На моей стороне я использовал приложение формы:
String Directory = System.Windows.Forms.Application.StartupPath;
требуется путь запуска приложения.