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

StackOverflow https://stackoverflow.com/questions/154754

  •  03-07-2019
  •  | 
  •  

我会找出 软盘插入状态:

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

这可以在 System.Management 命名空间中使用“WMI”来确定吗?

如果是这样,我可以在以下情况下生成事件吗 软盘插入状态 变化?

有帮助吗?

解决方案 2

使用鲍勃·金的想法我编写了以下方法。

它非常适合 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();
            }
        }
    }

其他提示

这来自 脚本中心@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 类.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top