Ответ 1
Посмотрите на объединение Environment.GetFolderPath и Environment.SpecialFolder для этого.
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
1) как я могу узнать об установочном диске Windows, в котором работает пользователь.? Мне нужно это, чтобы перейти к ApplicationDatastrong > в Documents andSettings.
2) Также, как я могу получить имя пользователя, чтобы я мог использовать ApplicaitionData.? Например: "D:\Documents and Settings\user\Application Data".
Посмотрите на объединение Environment.GetFolderPath и Environment.SpecialFolder для этого.
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
В зависимости от того, что вы делаете, вы также можете посмотреть
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
Если пользователь находится в домене, он будет храниться только в локальной папке AppData
и не синхронизироваться с их перемещаемым профилем.
Посмотрите Environment.SpecialFolders
Environment.SpecialFolder.ApplicationData;
Environment.SpecialFolder.System
который также поможет вам обойти требование имени пользователя.
Посмотрите на класс 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\Мои документы".
Попробуйте следующее:
string filePath = Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData);
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%");