Получить путь к файлу в текущем проекте

Как мне получить программный путь к файлу файла в моем проекте?

 string fileContent = File.ReadAllText(LocalConstants.EMAIL_PATH);

EMAIL_PATH Я добавил в свой проект текстовый файл. Эта строка кода генерирует исключение, потому что по какой-либо причине она ищет папку system32. Мне нужно установить его в каталог проектов.

Ответы

Ответ 1

Вы можете использовать Path.Combine и AppDomain.CurrentDomain.BaseDirectory:

string fileName = "SampleFile.txt";
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, LocalConstants.EMAIL_PATH, fileName);

Возвращает в тестовом проекте в режиме отладки этот путь (когда LocalConstants.EMAIL_PATH="Emails"):

C:\****\****\Documents\Visual Studio 2010\Projects\WindowsApplication1\WindowsFormsApplication1\bin\Debug\Emails\SampleFile.txt

Ответ 2

Вы можете использовать Environment.CurrentDirectory

Смотрите: http://msdn.microsoft.com/en-us/library/system.environment.currentdirectory.aspx

Для дальнейшего чтения.

edit *

string temp = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);

Будет делать то же самое и, возможно, немного безопаснее.

Ответ 3

Это сработало для меня System.AppDomain.CurrentDomain.BaseDirectory.ToString()