public new static List <IUsbDriveInfo> GetDrives() { var drives = new List <IUsbDriveInfo>(); using (var driveSearcher = new ManagementObjectSearcher( "SELECT Caption, DeviceID FROM Win32_DiskDrive WHERE InterfaceType='USB'") ) { // walk all USB WMI physical disks foreach (ManagementObject drive in driveSearcher.Get()) { // browse all USB WMI physical disks using (var searcher = new ManagementObjectSearcher( "ASSOCIATORS OF {Win32_DiskDrive.DeviceID='" + drive["DeviceID"] + "'} WHERE AssocClass = Win32_DiskDriveToDiskPartition")) { // walk all USB WMI physical disks foreach (ManagementObject partition in searcher.Get()) { using ( var partitionSearcher = new ManagementObjectSearcher( "ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" + partition["DeviceID"] + "'} WHERE AssocClass = Win32_LogicalDiskToPartition") ) { foreach (ManagementObject diskInfoFromWMI in partitionSearcher.Get()) { foreach (var driveInfo in DriveInfo.GetDrives()) { string s = driveInfo.Name.Replace("\\", ""); if (s == diskInfoFromWMI["NAME"].ToString()) { var usbDriveinfo = new UsbDriveInfoWindows(); usbDriveinfo._driveInfo = driveInfo; drives.Add(usbDriveinfo); } } } } } } } } return(drives); }
public new static List<IUsbDriveInfo> GetDrives() { var drives = new List<IUsbDriveInfo>(); using (var driveSearcher = new ManagementObjectSearcher( "SELECT Caption, DeviceID FROM Win32_DiskDrive WHERE InterfaceType='USB'") ) { // walk all USB WMI physical disks foreach (ManagementObject drive in driveSearcher.Get()) { // browse all USB WMI physical disks using (var searcher = new ManagementObjectSearcher( "ASSOCIATORS OF {Win32_DiskDrive.DeviceID='" + drive["DeviceID"] + "'} WHERE AssocClass = Win32_DiskDriveToDiskPartition")) { // walk all USB WMI physical disks foreach (ManagementObject partition in searcher.Get()) { using ( var partitionSearcher = new ManagementObjectSearcher( "ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" + partition["DeviceID"] + "'} WHERE AssocClass = Win32_LogicalDiskToPartition") ) { foreach (ManagementObject diskInfoFromWMI in partitionSearcher.Get()) { foreach (var driveInfo in DriveInfo.GetDrives()) { string s = driveInfo.Name.Replace("\\", ""); if (s == diskInfoFromWMI["NAME"].ToString()) { var usbDriveinfo = new UsbDriveInfoWindows(); usbDriveinfo._driveInfo = driveInfo; drives.Add(usbDriveinfo); } } } } } } } } return drives; }