Как я могу получить путь к текущей папке "Данные приложения"?

1) как я могу узнать об установочном диске Windows, в котором работает пользователь.? Мне нужно это, чтобы перейти к ApplicationData​​strong > в Documents andSettings.

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

Ответ 2

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

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

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

Ответ 3

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

Environment.SpecialFolder.ApplicationData;
Environment.SpecialFolder.System

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

Ответ 4

Посмотрите на класс 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\Мои документы".

Ответ 5

Попробуйте следующее:

string filePath = Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData);

Ответ 6

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\user\Application Данные".

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

    var currentUserName = Environment.ExpandEnvironmentVariables("%username%");