我正在编写自己的文件搜索程序(因为我想要/可以,而不是寻找现有的程序)。我可以使用DriveInfo.GetDrives()方法在C#中获取所有驱动器。理想情况下,我希望仅在单独的磁盘上并行运行搜索,并对于在同一驱动器上的分区按顺序运行它们。这样,我就不会导致驱动器不断寻找,因为GetDrives返回所有分区或可移动介质。我知道我可以通过判断USB驱动器与HDD驱动器的类型来区分它们。如何使用DriveInfo或其他方法实现这一点呢?
我正在编写自己的文件搜索程序(因为我想要/可以,而不是寻找现有的程序)。我可以使用DriveInfo.GetDrives()方法在C#中获取所有驱动器。理想情况下,我希望仅在单独的磁盘上并行运行搜索,并对于在同一驱动器上的分区按顺序运行它们。这样,我就不会导致驱动器不断寻找,因为GetDrives返回所有分区或可移动介质。我知道我可以通过判断USB驱动器与HDD驱动器的类型来区分它们。如何使用DriveInfo或其他方法实现这一点呢?
这个相关的问题展示了如何使用WMI(可以在System.Management
中找到)来查看:
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"]);
}