Как указать путь к файлу с использованием %USERNAME%?

144
06 февраля 2018, 06:34

При создании файла или при его чтении я хочу указать путь таким образом, чтобы не приходилось вводить имя пользователя. Как это делается в windows: C:\Users\%USERNAME%\Documents\users.xml

Но программа не понимает что такое %USERNAME%. Как решить эту проблему? Я хочу, чтобы программа запускалась на других компьютерах и хранила файл конкретно в данной папке

Answer 1

На C# это делается так.

// получить правильный путь к документам текущего пользователя
var docFolder = Environment.GetFolderPath(
        Environment.SpecialFolder.MyDocuments,
        Environment.SpecialFolderOption.Create);
// добавить имя файла с учётом системно-зависимого разделителя
var path = Path.Combine(docFolder, "users.xml");

Если надо в общем случае раскрыть переменные окружения, используйте Environment.ExpandEnvironmentVariables. Но не забывайте, что домашний каталог текущего пользователя может храниться вовсе не в C:\Users\.

Answer 2

Переменная среды, хранящая путь к профилю текущего пользователя называется USERPROFILE, поэтому вам нужен путь: %USERPROFILE%\Documents\users.xml

На википедии есть перечень некоторых переменных среды: Переменная среды Windows

READ ALSO
Entity Framework Code First, получить объект через ключ

Entity Framework Code First, получить объект через ключ

Есть проект на C#, использующий Entity Framework Code First

198
Unity IAP Win10

Unity IAP Win10

Собираем билд в Юнити под Win10 Universal, backend выбираемnet

164
Ошибка в кодировке русских символов

Ошибка в кодировке русских символов

ЗдравствуйтеСоздал пустое asp

149
Загрузка Hex файла в микроконтроллер

Загрузка Hex файла в микроконтроллер

Работаю с опытным образцом микроконтроллера, поэтому программами типа Flash- magic заливать не получаетсяФирма- создатель прислала кривую- косую...

183