我可以使用WMI和System.Management命名空间测试软驱吗?

问题描述:

我会找出软盘插入状态我可以使用WMI和System.Management命名空间测试软驱吗?

  • 没有软盘插入
  • 未格式化的软盘插入
  • 格式化的软盘插入

可使用“WMI”这个决定在系统。管理命名空间?

如果是这样,当软盘插入状态更改时,是否可以生成事件?

使用Bob Kings的想法我写了下面的方法。

它可以在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(); 
      } 
     } 
    } 

这来自Scripting Center @ MSDN

strComputer = "." 
Set objWMIService = GetObject(_ 
    "winmgmts:\\" & strComputer & "\root\cimv2") 
Set colItems = objWMIService.ExecQuery _ 
    ("Select * From Win32_LogicalDisk Where DeviceID = 'A:'") 

For Each objItem in colItems 
    intFreeSpace = objItem.FreeSpace 
    If IsNull(intFreeSpace) Then 
     Wscript.Echo "There is no disk in the floppy drive." 
    Else 
     Wscript.Echo "There is a disk in the floppy drive." 
    End If 
Next 

你也可以知道它是格式化或没有,通过检查Win32_LogicalDisk class的其他成员。

+0

不适用于软盘。请参阅回复代码。 – jyoung 2008-10-03 19:20:08