如何在C#中获取当前的Windows目录,例如C:\

Mil*_*les 22 .net c# windows

正如标题所示,如何获得当前的OS驱动器,因此可以将其添加到字符串中,例如:

MessageBox.Show(C:\ + "My Documents");
Run Code Online (Sandbox Code Playgroud)

谢谢

Otá*_*cio 53

添加系统IO参考,

using System.IO;
Run Code Online (Sandbox Code Playgroud)

然后写这样的代码;

string path = Path.GetPathRoot(Environment.SystemDirectory);
Run Code Online (Sandbox Code Playgroud)

此代码将设置__CODE__为已安装Windows的本地驱动器号.您可以使用上述变量进行进一步修改.

例如:

MessageBox.Show($"Windows is installed to Drive {path}");
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • @Miles - 是的,我理解.这正是Path.GetPathRoot(Environment.SystemDirectory)为您提供的. (2认同)
  • 你第一次打字,你改了它:P (2认同)
  • 是的Environment.SystemDirectory为您提供{安装驱动器号}:\ windows\system32,然后Path.GetPathRoot,为您提供传递它的路径的根目录.是的,他改变了它;)我回应它不做前一个! (2认同)

jos*_*736 11

查找特定文件夹(例如"我的文档")时,请勿使用硬编码路径. 路径可以从Windows的版本更改为(C:\Documents and Settings\vs C:\Users\),并在旧版本(C:\Users\user\Documents\vs C:\Usuarios\user\Documentos\)中进行本地化.根据配置,用户配置文件可能位于与Windows不同的驱动器上.Windows可能没有安装在您期望的位置(它不必在其中\Windows\).可能还有其他我不知道的情况.

相反,使用Shell API(SHGetKnownFolderPath)来获取实际路径.在.NET中,可以从中轻松获取这些值Environment.GetFolderPath.如果您要查找用户的"我的文档"文件夹:

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
Run Code Online (Sandbox Code Playgroud)

特殊文件夹的完整列表


Ree*_*sey 6

您可以使用Environment.CurrentDirectory来获取当前目录. Environment.SystemDirectory将为您提供系统文件夹(即:C:\ Windows\System32).Path.GetPathRoot将为您提供路径的根目录:

var rootOfCurrentPath = Path.GetPathRoot(Environment.CurrentDirectory);
var driveWhereWindowsIsInstalled = Path.GetPathRoot(Environment.SystemDirectory);
Run Code Online (Sandbox Code Playgroud)