Получение абсолютного пути исполняемого файла, используя С#?

Посмотрите на этот псевдокод:

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();

Ответ 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;

требуется путь запуска приложения.