我可以使用 WMI 和 System.Management 命名空间测试软盘驱动器吗?
题
我会找出 软盘插入状态:
- 没有插入软盘
- 插入未格式化的软盘
- 已插入格式化软盘
这可以在 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 类.
不隶属于 StackOverflow