Как получить текущий каталог Windows, например, C: \ in C # - PullRequest
22 голосов
/ 31 августа 2011

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

MessageBox.Show(C:\ + "My Documents");

Спасибо

Ответы [ 4 ]

52 голосов
/ 31 августа 2011

Добавить ссылку на System.IO:

using System.IO;

Тогда в своем коде напишите:

string path = Path.GetPathRoot(Environment.SystemDirectory);

Давайте попробуем, показав окно сообщения.

MessageBox.Show($"Windows is installed to Drive {path}");

Message box:

11 голосов
/ 31 августа 2011

При поиске определенной папки (например, Мои документы), не используйте жестко заданный путь. Пути могут меняться от версии к версии Windows (C:\Documents and Settings\ против C:\Users\) и были локализованы в более старых версиях (C:\Users\user\Documents\ против C:\Usuarios\user\Documentos\).В зависимости от конфигурации профили пользователей могут находиться на диске, отличном от Windows.Windows может быть не установлена ​​там, где вы ожидаете (она не должна быть в \Windows\).Вероятно, есть другие случаи, о которых я не знаю.

Вместо этого используйте Shell API (SHGetKnownFolderPath), чтобы получить фактический путь.В .NET эти значения легко получить из Environment.GetFolderPath.Если вы ищете папку Мои документы пользователя:

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

Полный список специальных папок

6 голосов
/ 31 августа 2011

Вы можете использовать Environment.CurrentDirectory , чтобы получить текущий каталог. Environment.SystemDirectory выдаст вам системную папку (то есть: C: \ Windows \ System32). Path.GetPathRoot даст вам корень пути:

var rootOfCurrentPath = Path.GetPathRoot(Environment.CurrentDirectory);
var driveWhereWindowsIsInstalled = Path.GetPathRoot(Environment.SystemDirectory);
0 голосов
/ 31 августа 2011

Если вы не возражаете против небольшого разбора: http://msdn.microsoft.com/en-us/library/system.environment.systemdirectory.aspx

Environment.systemdirectory возвращает текущий каталог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...