当我打开 Disk Management
(右键单击我的电脑 -> 管理)时,我看到:
我怎么知道路径 F:\
属于 Disk5? 换句话说,我想知道 C# 可以使用哪些磁盘。
我之所以需要知道这一点,是因为我有一个加密的 USB mas 存储设备,我需要将参数 \Device\Harddisk5
传递给 TrueCrypt以及密码,以便使用代码安装加密设备。
编辑
我知道如何查看驱动器信息。例如,我只是不知道如何知道驱动器 1 属于磁盘 0。换句话说,我无法确定磁盘编号。我希望实现:
public string GetDiskNumber(char letter)
{
// implenetation
return Disk5;
}
我将其称为:
GetDiskNumber('F');
最佳答案
您可以使用 WMI 来检索该信息
System.Management.ManagementObject("Win32_LogicalDisk.DeviceID=" & DriveLetter & ":")
查看更多信息 Win32_LogicalDisk class我希望它有所帮助。顺便说一下,还有 PInvoke GetVolumeInformation .
如果您需要“PHYSICALDRIVE0”,您应该使用 Win32_PhysicalMedia class和类(class)Win32_DiskDrivePhysicalMedia将两者粘在一起。
您需要的 C# 示例
public string GetDiskNumber(string letter)
{
var ret = "0";
var scope = new ManagementScope("\\\\.\\ROOT\\cimv2");
var query = new ObjectQuery("Associators of {Win32_LogicalDisk.DeviceID='" + letter + ":'} WHERE ResultRole=Antecedent");
var searcher = new ManagementObjectSearcher(scope, query);
var queryCollection = searcher.Get();
foreach (ManagementObject m in queryCollection)
{
ret = m["Name"].ToString().Replace("Disk #", "")[0].ToString();
}
return ret;
}
关于c# - 使用 C# 查看磁盘管理信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21321222/