Win32_LogicalDisk对于软盘失败
时间:2020-03-06 15:05:34 来源:igfitidea点击:
使用鲍勃·金(Bob King)的想法,我编写了以下方法。
它适用于CD,可移动驱动器,常规驱动器。
但是对于软盘,它总是返回"不可用"。有任何想法吗?
public static void TestFloppy( char driveLetter ) { using( var searcher = new ManagementObjectSearcher( @"SELECT * FROM Win32_LogicalDisk WHERE DeviceID = '" + driveLetter + ":'" ) ) using( var logicalDisks = searcher.Get() ) { foreach( ManagementObject logicalDisk in logicalDisks ) { var fs = logicalDisk[ "FreeSpace" ]; Console.WriteLine( "FreeSpace = " + ( fs ?? "Not Available" ) ); logicalDisk.Dispose(); } } }
解决方案
抱歉,我没有更好的答案,但是我曾经做过同样的事情(使用ManagementObjectSearcher),发现每次代码运行软盘驱动器都会执行某种搜寻/初始化序列。
因此,我改为以下内容并进行交互:
ManagementClass comp = new ManagementClass(scope, new ManagementPath(obj), null); comp.Get(); objs = comp.GetInstances();
我想说这是WMI中的一个已知错误,但是不幸的是,代码注释没有留下任何提示:(