我正在编写自己的文件搜索(为什么因为我想/可以 - 不寻找现有程序)。我可以使用DriveInfo.GetDrives()方法获取c#中的所有驱动器。理想情况下,我希望仅在单独磁盘的驱动器上并行运行搜索,并且对于位于同一驱动器上的分区顺序运行它们。这样我就不会在GetDrives返回所有分区或可移动媒体时不断寻找驱动器。我知道我可以告诉它类型是USB驱动器还是硬盘驱动器?我怎样才能实现DriveInfo或任何其他方法?
答案 0 :(得分:3)
This related question展示了如何找到使用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"]);
}