我想指出,如果联通驱动器连接U、thru SATA、IDE、eSATA或Pewire。 是否有办法不使用WMI? Im利用该法典获取一些信息。
DriveInfo[] drives = DriveInfo.GetDrives();
foreach (DriveInfo drive in drives) {
// DriveType.Fixed && DriveType.Removable
}
遗憾的是,所有HDD连接的星座的这种回报。 DriveType.Fixed
,只有USB 标准为<代码> DriveType.Removable。
我猜想像我这样想......我不知道我实际上所期待的东西。 遗憾的是,<代码>GetVolume Information.n t 提供了了解的途径。 InterfaceType
[DllImport("kernel32.dll")]
private static extern long GetVolumeInformation(
string PathName,
StringBuilder VolumeNameBuffer,
UInt32 VolumeNameSize,
ref UInt32 VolumeSerialNumber,
ref UInt32 MaximumComponentLength,
ref UInt32 FileSystemFlags,
StringBuilder FileSystemNameBuffer,
UInt32 FileSystemNameSize);
我要ski。 我确实知道,我可以越来越多地发现这一法典:
ManagementObjectSearch theSearcher = new ManagementObjectSearcher(
"SELECT * FROM Win32_DiskDrive WHERE InterfaceType= USB ");
但我倾向于避免。