//需要添加并引用命名空间System.Management;//========================================================================================= /// <summary> /// 获取U盘的盘符及序列号 /// </summary> /// <returns>以交错数组string[][]的方式返回U盘的盘符及序列号!</returns> public static string[][] GetUSBInfo() { List<string> usbLoglst = new List<string>(); List<string[]> usbdsklst = new List<string[]>(); List<string[]> usblst = new List<string[]>(); ManagementObjectSearcher usbLog = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk where drivetype=2 and Size>943718400"); ManagementObjectSearcher usbdsk = new ManagementObjectSearcher("Select * from Win32_DiskDrive Where InterfaceType = 'USB'"); if (usbLog.Get().Count >= 1 && usbdsk.Get().Count >= 1) { foreach (ManagementObject usbLogitem in usbLog.Get()) { usbLoglst.Add(usbLogitem["DeviceID"].ToString().Trim(':')); } foreach (ManagementObject usbdskitem in usbdsk.Get()) { string[] lst1; string usbId = usbdskitem["PNPDeviceID"].ToString(); lst1 = usbId.Substring(usbId.LastIndexOf("\\") + 1).Split('&'); Array.Reverse(lst1); usbdsklst.Add(new string[] { usbdskitem["Index"].ToString(), lst1[1] }); //usbdsklst.Add(new string[] { usbdskitem["DeviceID"].ToString(), DId.Substring(DId.LastIndexOf("\\") + 1) }); usbdsklst.Sort((x, y) => x[0].CompareTo(y[0]));//升序 } for (int i = 0; i < usbLoglst.Count; i++) { usblst.Add(new string[] { usbLoglst[i], usbdsklst[i][1] }); } } string[][] USBID = usblst.ToArray(); return USBID; } //=========================================================================================