读取出本地电脑上的usb盘,除了前面说的一个方法外(http://blog.csdn.net/yysyangyangyangshan/article/details/7101961)
还有一种方法,如下:
public static List<string> GetUsbDisk() { List<string> usbDiskNameList = new List<string>(); try { ManagementObjectCollection drives = new ManagementObjectSearcher("select * from Win32_DiskDrive where interfaceType = 'USB'").Get(); foreach (ManagementObject drive in drives) { ManagementObjectCollection partitions = new ManagementObjectSearcher("ASSOCIATORS OF {Win32_DiskDrive.DeviceID='" + drive["DeviceID"] + "'} WHERE AssocClass = Win32_DiskDriveToDiskPartition").Get(); foreach (ManagementObject partition in partitions) { ManagementObjectCollection volumeLetters = new ManagementObjectSearcher("ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" + partition["DeviceID"] + "'} WHERE AssocClass = Win32_LogicalDiskToPartition").Get(); foreach (ManagementObject volumeLette in volumeLetters) { string usbDiskName = string.Format(@"{0}\", volumeLette["Name"].ToString()); usbDiskNameList.Add(usbDiskName); } } } } catch { } return usbDiskNameList; }
调用
static void Main(string[] args) { List<string> usbDiskNameList = GetUsbDisk(); int count = usbDiskNameList.Count; Console.WriteLine("USB磁盘:"); for (int i = 0; i < count; i++) { Console.WriteLine(usbDiskNameList[i]); } Console.ReadLine(); }
结果:
转载于:https://blog.51cto.com/yangyoushan/1276554