Повсеместный способ получить корневой каталог, в котором запущено приложение, через C # - PullRequest
2 голосов
/ 30 октября 2009

Мое приложение требует, чтобы у меня был доступ к файловой системе. Независимо от того, выполняется ли код на веб-сервере или в консольном приложении, как получить корневой каталог, в котором выполняется приложение.

Спасибо!

Ответы [ 4 ]

9 голосов
/ 30 октября 2009

Самый простой, вероятно:

System.Reflection.Assembly.GetExecutingAssembly().Location

Надеюсь, это поможет,

-Oisin

1 голос
/ 12 ноября 2010

Я только что протестировал очень простой способ сделать это, который работает как в asp.net, так и в службе Windows.

var binariesPath = string.IsNullOrEmpty(AppDomain.CurrentDomain.RelativeSearchPath) 
                    ? AppDomain.CurrentDomain.BaseDirectory // Windows Service
                    : AppDomain.CurrentDomain.RelativeSearchPath; // Asp.net
1 голос
/ 30 октября 2009

Вы можете попробовать это:

String path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

Подробнее о двух классах можно прочитать здесь:

0 голосов
/ 30 октября 2009

Еще проще:

</p> <pre><code>string myPath = Application.ExecutablePath;

Для приложения winforms это всегда установлено.

...