Как я могу получить путь к папке «Данные приложения» текущего пользователя? - PullRequest
35 голосов
/ 27 мая 2009

1) как узнать установочный диск Windows, на котором работает пользователь? Мне нужно это, чтобы перейти к ApplicationData в DocumentsandSettings.

2) Также как я могу получить имя пользователя , чтобы я мог перейти к ApplicaitionData. Например: «D: \ Documents and Settings \ user \ Application Data».

Ответы [ 6 ]

67 голосов
/ 27 мая 2009

Посмотрите на объединение Environment.GetFolderPath и Environment.SpecialFolder , чтобы сделать это.

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
17 голосов
/ 27 мая 2009

В зависимости от того, что вы делаете, вы также можете посмотреть на

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

Если пользователь находится в домене, он будет храниться только в локальной папке AppData и не синхронизироваться с перемещаемым профилем.

4 голосов
/ 27 мая 2009

Посмотрите на Environment.SpecialFolders

Environment.SpecialFolder.ApplicationData;
Environment.SpecialFolder.System

, что также поможет вам обойти требования пользователя.

3 голосов
/ 27 мая 2009

Посмотрите на класс System.Environment, его свойства и методы, например:

string systemDir = System.Environment.SystemDirectory;
string docs = System.Environment.GetFolderPath(
    System.Environment.SpecialFolder.MyDocuments));

string systemDrive = System.IO.Path.GetPathRoot(systemDir);

Первый возвращает, например, « C: \ Windows \ system32 », а второй « C: \ Documents and Settings \ USERNAME \ Мои документы ».

2 голосов
/ 27 мая 2009

Попробуйте это:

string filePath = Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData);
1 голос
/ 17 февраля 2017

1) как узнать установочный диск Windows, на котором пользователь работает.?

    var systemDrive =  Environment.ExpandEnvironmentVariables("%systemdrive%");

Мне нужно, чтобы перейти к ApplicationData в DocumentsandSettings.

Вам не требуется извлекать значение системного диска или текущего имени пользователя, чтобы достичь этого. Есть предопределенные переменные окружения %localAppData% и %appData%, которые дают вам полный путь к этим каталогам, как показано в коде ниже:

var localApplicationData = Environment.ExpandEnvironmentVariables("%localappdata%"); 
//this gives C:\Users\<userName>\AppData\Local

var roamingApplicationData = Environment.ExpandEnvironmentVariables("%appdata%");
//this gives C:\Users\<userName>\AppData\Roaming

2) Также, как я могу получить имя пользователя, чтобы я мог перейти ApplicaitionData.? Например: "D: \ Documents and Settings \ пользователь \ приложение" Данные».

Опять же, вам не нужно имя пользователя, чтобы получить путь к данным приложения, как я уже говорил выше. Тем не менее, ради знаний вы можете получить его из %username% переменной среды, как показано ниже:

    var currentUserName = Environment.ExpandEnvironmentVariables("%username%");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...