我正在寻找一种扫描硬盘的方法,而不会产生试图读取软盘驱动器以查看是否有磁盘的系统的“软盘税”。
重要:我知道如何使用DriveInfo.GetDrives
来获取硬盘,但这需要在创建列表后过滤。我想要做的是在之前过滤,如果可能的话。
答案 0 :(得分:2)
你可以试试这个:
ConnectionOptions opts = new ConnectionOptions();
ManagementScope scope = new ManagementScope(@"\\.\root\cimv2", opts);
SelectQuery diskQuery = new SelectQuery("SELECT * FROM Win32_LogicalDisk WHERE (MediaType != 0 AND MediaType = 11 OR MediaType = 12)");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(diskQuery);
ManagementObjectCollection diskObjColl = searcher.Get();
媒体类型11和12不是软盘。您可以在此处找到完整的文档:http://msdn.microsoft.com/en-us/library/windows/desktop/aa394173%28v=vs.85%29.aspx
答案 1 :(得分:1)
不是这样......在getDrives调用期间,驱动器信息根本没有过滤或排除任何类型驱动器的功能。
但也许还有另一种方式。 (这是未经测试但可能是一个想法:)如果您只是在寻找特定驱动器的可用性,您可以使用特定驱动器的名称实例化DriveInfo类,看看它是否有效?
答案 2 :(得分:1)
CD驱动器和软盘驱动器尚未就绪 所以你可以试试这个:
- - * - -
- - * * *
- - - - *
- - - * *
- - - * -