/// <summary> /// All'avvio controlla se ci sono dispositivi connessi /// e inizializza il il gestore di eventi /// </summary> private void Form1_Load(object sender, EventArgs e) { UsbManager = new UsbManager(); UsbManager.StateChanged += new UsbStateChangedEventHandler(DeviceStateChanged); // Directory di lavoro per la gestione dei file in user mode if (Directory.Exists(Services.FileSSRestoreService.DataDirectory) == false) { Directory.CreateDirectory(Services.FileSSRestoreService.DataDirectory); } // display all devices UsbDiskCollection disks = UsbManager.GetAvailableDisks(); WriteLine("Available USB disks:", Color.DarkCyan); foreach (UsbDisk disk in disks) { WriteLine(disk.ToString()); OnDeviceAdded(disk.Name); } WriteLine(string.Empty); WriteLine("Waiting for events...", Color.DarkCyan); Tests(); }
/// <summary> /// Initialize a new instance of the dialog using the given Controller. /// </summary> /// <param name="controller"></param> public SynchronizeDialog(Controller controller) : this() { this.controller = controller; this.manager = new UsbManager(); this.disks = manager.GetAvailableDisks(); this.playlists = null; this.percentageCompleted = 0; this.selector.Loaded += new RoutedEventHandler(DoLoaded); }
private void updateAvailableDisks() { disks = manager.GetAvailableDisks(); logText(string.Format("{0} USB disks available", disks.Count())); if (disks.HasAny) { foreach (UsbDisk disk in disks) { logText(disk.ToString()); } logText(); } }
public void CollectionTest() { UsbDiskCollection disks = new UsbDiskCollection(); Assert.IsFalse(disks.Contains("foo")); UsbDisk disk = new UsbDisk("foo"); disks.Add(disk); Assert.IsTrue(disks.Contains(disk)); Assert.IsTrue(disks.Contains("foo")); Assert.IsFalse(disks.Contains("missing")); disks.Remove("foo"); Assert.AreEqual(0, disks.Count); Assert.IsFalse(disks.Contains("foo")); }
private static UsbDiskCollection GetUsbDiskCollection() { UsbManager manager = new UsbManager(); UsbDiskCollection usbDisks = new UsbDiskCollection(); try { foreach (UsbDisk disk in manager.GetAvailableVolumns()) { usbDisks.Add(disk); } } catch (Exception ex) { } return(usbDisks); }
public static void GetUdiskInfo() { UsbManager manager = new UsbManager(); try { var newDiskCollection = GetUsbDiskCollection(); if (!diskCollection.SequenceEqual(newDiskCollection)) { diskCollection = newDiskCollection; OutText(false, diskCollection, cbb); } } catch (Exception ex) { } finally { manager.Dispose(); } }
public void ManagerTest() { manager = new UsbManager(); UsbDiskCollection disks = manager.GetAvailableDisks(); foreach (UsbDisk disk in disks) { Console.WriteLine(String.Format( "{0} {1} ({2})", disk.Name, disk.Volume, disk.Model)); } // need to set GetDiskInformation to 'public' for these lines: //UsbDisk d = new UsbDisk("T:", null, null); //manager.GetDiskInformation(d); manager.StateChanged += new UsbStateChangedEventHandler(manager_StateChanged); ManualResetEvent reset = new ManualResetEvent(false); reset.WaitOne(120000, false); }
//======================================================================================== // Methods //======================================================================================== /// <summary> /// Gets a collection of all available USB disk drives currently mounted. /// </summary> /// <returns> /// A UsbDiskCollection containing the USB disk drives. /// </returns> public UsbDiskCollection GetAvailableDisks() { UsbDiskCollection disks = new UsbDiskCollection(); // browse all USB WMI physical disks foreach (ManagementObject drive in new ManagementObjectSearcher( "select DeviceID, Model from Win32_DiskDrive where InterfaceType='USB'").Get()) { // associate physical disks with partitions ManagementObject partition = new ManagementObjectSearcher(String.Format( "associators of {{Win32_DiskDrive.DeviceID='{0}'}} where AssocClass = Win32_DiskDriveToDiskPartition", drive["DeviceID"])).First(); if (partition != null) { // associate partitions with logical disks (drive letter volumes) ManagementObject logical = new ManagementObjectSearcher(String.Format( "associators of {{Win32_DiskPartition.DeviceID='{0}'}} where AssocClass = Win32_LogicalDiskToPartition", partition["DeviceID"])).First(); if (logical != null) { // finally find the logical disk entry to determine the volume name ManagementObject volume = new ManagementObjectSearcher(String.Format( "select FreeSpace, Size, VolumeName from Win32_LogicalDisk where Name='{0}'", logical["Name"])).First(); try { if (volume["VolumeName"] != null) { UsbDisk disk = new UsbDisk(logical["Name"].ToString()); disk.Model = drive["Model"].ToString(); disk.VolumeLabel = volume["VolumeName"].ToString(); disk.AvailableFreeSpace = (ulong) volume["FreeSpace"]; disk.TotalSize = (ulong) volume["Size"]; disks.Add(disk); } }catch(NullReferenceException) { } } } } return disks; }
//======================================================================================== // Methods //======================================================================================== /// <summary> /// Gets a collection of all available USB disk drives currently mounted. /// </summary> /// <returns> /// A UsbDiskCollection containing the USB disk drives. /// </returns> public UsbDiskCollection GetAvailableDisks () { UsbDiskCollection disks = new UsbDiskCollection(); // browse all USB WMI physical disks foreach (ManagementObject drive in new ManagementObjectSearcher( "select DeviceID, Model from Win32_DiskDrive where InterfaceType='USB' or MediaType='External hard disk media'").Get()) { // associate physical disks with partitions foreach (ManagementObject partition in new ManagementObjectSearcher(String.Format( "associators of {{Win32_DiskDrive.DeviceID='{0}'}} where AssocClass = Win32_DiskDriveToDiskPartition", drive["DeviceID"])).Get()) { try { if (partition != null) { // associate partitions with logical disks (drive letter volumes) ManagementObject logical = new ManagementObjectSearcher(String.Format( "associators of {{Win32_DiskPartition.DeviceID='{0}'}} where AssocClass = Win32_LogicalDiskToPartition", partition["DeviceID"])).First(); if (logical != null) { // finally find the logical disk entry to determine the volume name ManagementObject volume = new ManagementObjectSearcher(String.Format( "select FreeSpace, Size, VolumeName, DriveType from Win32_LogicalDisk where Name='{0}'", logical["Name"])).First(); UsbDisk disk = new UsbDisk(logical["Name"].ToString()); disk.Model = drive["Model"].ToString(); disk.Volume = volume["VolumeName"].ToString(); disk.FreeSpace = (ulong)volume["FreeSpace"]; disk.Size = (ulong)volume["Size"]; disk.DriveType = Drivetypeconvert(Int32.Parse(volume["DriveType"].ToString())); disks.Add(disk); //MessageBox.Show("HERE"); } } } catch { } } } return disks; }
/// <summary> /// Release manages resources. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DoClosed(object sender, EventArgs e) { if (percentageCompleted > 0) { controller.Librarian.ProgressChanged -= new ProgressChangedEventHandler(DoProgressChanged); } // must detach collection from WPF control otherwise will not dispose selector.DataContext = null; disks.Clear(); disks = null; playlistBox.ItemsSource = null; playlists.Dispose(); playlists = null; manager.Dispose(); manager = null; controller = null; }