Ton*_*Nam 4 c# disk volume hard-drive
当我打开Disk Management(右键单击我的电脑->管理)时,我看到:

我怎么知道该路径F:\属于Disk5? 换句话说,我想知道哪些磁盘可用于 C#。
我需要知道这一点的原因是因为我有一个加密的 USB mas 存储设备,我需要将参数与密码一起传递\Device\Harddisk5给TrueCrypt,以便使用代码安装加密设备。
我知道如何查看驱动器信息。例如,我只是不知道如何知道驱动器 1 属于磁盘 0。换句话说,我在弄清楚Disk Number时遇到了麻烦。我正在寻求实施:
public string GetDiskNumber(char letter)
{
// implenetation
return Disk5;
}
Run Code Online (Sandbox Code Playgroud)
我将其称为:
GetDiskNumber('F');
Run Code Online (Sandbox Code Playgroud)
您可以使用 WMI 来检索该信息
System.Management.ManagementObject("Win32_LogicalDisk.DeviceID=" & DriveLetter & ":")
Run Code Online (Sandbox Code Playgroud)
在Win32_LogicalDisk 类中查看更多我希望它有所帮助。顺便说一下,还有 PInvoke GetVolumeInformation。
如果您需要 'PHYSICALDRIVE0',您应该使用Win32_PhysicalMedia 类和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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2104 次 |
| 最近记录: |