我正在 C# 中为 Windows 不支持的文件系统制作实用程序,这意味着我不能只访问驱动器。我需要一种方法来列出硬盘上的所有分区并写入/格式化它们。
问问题
7269 次
2 回答
8
要列出磁盘分区,您可以使用 WMI。
var searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_DiskPartition");
foreach (var queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Win32_DiskPartition instance");
Console.WriteLine("Name:{0}", (string)queryObj["Name"]);
Console.WriteLine("Index:{0}", (uint)queryObj["Index"]);
Console.WriteLine("DiskIndex:{0}", (uint)queryObj["DiskIndex"]);
Console.WriteLine("BootPartition:{0}", (bool)queryObj["BootPartition"]);
}
于 2011-07-04T20:32:50.183 回答
1
您可以使用以下方法获取磁盘分区所在的 Volume 或 DriveLetter。
- Win32_LogicalDiskToPartition
- Win32_DiskDrive
从Win32_DiskDrive
类中,您可以DriveNumber
通过查询属性Index
或提取DriveNumber
fromName
属性来获取。然后查询Antecedent
和Dependent
从 Win32_LogicalDiskToPartition
。在该Antecedent
值中,您将获得磁盘编号和它尝试映射卷的分区,然后DriveLetter
从属性中提取诸如“C:”、“D:”等Dependent
。因此,通过使用此逻辑,您可以LogicalDrives
安装在特定的HardDisk
. 我在组件中使用此逻辑来获取LogicalDrive
系统上特定硬盘驱动器的名称(“C:”、“D:”等)。
于 2015-02-03T06:40:24.530 回答