Получить путь к файлу С#

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

file = new StreamReader(@"C:\Users\<username>\Documents\File.txt");
</username>

Однако это (очевидно) не будет работать на любом другом ПК, который не имеет такого доступа к изменению кода, или (по каким-то странным случаям) тот же каталог, что и исходный код.

Как я могу получить полный путь к файлу, чтобы установить его в моей программе с помощью С#?

2 ответа

Вы можете создать файл в своем каталоге данных приложения (они все равно могли бы найти его, если бы захотели, но по крайней мере это было бы не так очевидно, как папка "Мои документы").

Когда вы хотите получить к нему доступ, используйте класс Environment. Существуют методы поиска специальных папок для текущего пользователя, не прибегая к жестко закодированным путям:

var filePath = Path.Combine(Environment.GetFolderPath(
 Environment.SpecialFolder.ApplicationData), "File.txt");


Вариант 1:

Application.StartupPath может использоваться для этой цели.

Он получает путь к исполняемому файлу, который запустил приложение, не включая имя исполняемого файла.

Храните File.txt своем исполняемом файле.

Вариант 2:

Использовать Environment.SpecialFolder.ApplicationData

Он предоставляет каталог, который служит в качестве общего репозитория для данных, специфичных для приложения для текущего перемещающегося пользователя.

ПРИМЕЧАНИЕ. Если вы хотите ограничить пользователя просмотром содержимого файла File.txt, вам может потребоваться зашифровать содержимое.

licensed under cc by-sa 3.0 with attribution.