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中的一个已知错误,但是不幸的是,代码注释没有留下任何提示:(