public static bool EjectDrive(USBDeviceInfo drive) { if (drive.DriveLetters.Count <= 0) { return(false); } return(EjectDriveLetter(drive.DriveLetters[0])); }
public DriveResult(string driveName, string driveLetters, USBDeviceInfo deviceInfo) : base(driveName, driveLetters) { mDriveName = driveName; mDriveLetters = driveLetters; mDeviceInfo = deviceInfo; Title = driveName; SubTitle = driveLetters; Action = OnSelect; }
public static List <USBDeviceInfo> ListUSBDevices() { List <USBDeviceInfo> devices = new List <USBDeviceInfo>(); ManagementObjectCollection col; //string query = @"select * from Win32_USBControllerDevice"; //string query = @"select * from Win32_USBHub"; string query = @"select * from Win32_DiskDrive where InterfaceType = 'USB'"; using (var searcher = new ManagementObjectSearcher(query)) { col = searcher.Get(); } foreach (var device in col) { // query for partitions string deviceID = device.Properties["DeviceID"].Value.ToString(); var deviceIDs = GetPartitionsDeviceIDs(deviceID); List <string> allLetters = new List <string>(); foreach (var partitionDeviceID in deviceIDs) { var letters = GetParitionDriveLetters(partitionDeviceID); foreach (string letter in letters) { allLetters.Add(letter); } } var deviceInfo = new USBDeviceInfo { Name = device.Properties["Name"].Value.ToString(), Caption = device.Properties["Caption"].Value.ToString(), DeviceID = deviceID, PnPDeviceID = device.Properties["PNPDeviceID"].Value.ToString(), Description = device.Properties["Description"].Value.ToString(), Status = device.Properties["Status"].Value.ToString(), DriveLetters = allLetters }; devices.Add(deviceInfo); } col.Dispose(); return(devices); }