Comment découvrir les périphériques de stockage USB et les lecteurs de CD/DVD inscriptibles (C#)

StackOverflow https://stackoverflow.com/questions/51645

  •  09-06-2019
  •  | 
  •  

Question

Comment puis-je découvrir les périphériques de stockage USB et/ou les graveurs de CD/DVD disponibles à un moment donné (en utilisant C# .Net2.0).

Je voudrais présenter aux utilisateurs un choix d'appareils sur lesquels un fichier peut être stocké pour être physiquement supprimé - c'est-à-direpas le disque dur.

Était-ce utile?

La solution

using System.IO;

DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
  if (d.IsReady && d.DriveType == DriveType.Removable)
  {
    // This is the drive you want...
  }
}

La documentation de la classe DriveInfo est ici :

http://msdn.microsoft.com/en-us/library/system.io.driveinfo.aspx

Autres conseils

il s'agit du code VB.NET permettant de rechercher les lecteurs amovibles ou les lecteurs de CD-Rom connectés à l'ordinateur :

Me.lstDrives.Items.Clear()
For Each item As DriveInfo In My.Computer.FileSystem.Drives
    If item.DriveType = DriveType.Removable Or item.DriveType = DriveType.CDRom Then
        Me.lstDrives.Items.Add(item.Name)
    End If
Next

ce ne sera pas si difficile de modifier ce code en un équivalent c#, et plus encore Type de lecteursont disponibles.
Depuis MSDN :

  • Inconnu: Le type de lecteur est inconnu.
  • Aucun répertoire racine : Le lecteur n'a pas de répertoire racine.
  • Amovible: Le lecteur est un périphérique de stockage amovible, tel qu'un lecteur de disquettes ou une clé USB.
  • Fixé: Le lecteur est un disque fixe.
  • Réseau: Le lecteur est un lecteur réseau.
  • CD ROM: Le lecteur est un périphérique de disque optique, tel qu'un CD ou un DVD-ROM.
  • RAM: Le lecteur est un disque RAM.

en c#, vous pouvez obtenir la même chose en utilisant la classe System.IO.DriveInfo

using System.IO;

public static class GetDrives
{
    public static IEnumerable<DriveInfo> GetCDDVDAndRemovableDevices()
    {
        return DriveInfo.GetDrives().
            Where(d => d.DriveType == DriveType.Removable
            && d.DriveType == DriveType.CDRom);
    }

}

Il s'agit d'un module complet pour VB.NET :
Importe System.IO
Module GetDriveNamesByType
Fonction GetDriveNames (facultatif ByVal DType As DriveType = DriveType.Removable) As ListBox
Pour chaque DN en tant que System.IO.DriveInfo dans My.Computer.FileSystem.Drives
Si DN.DriveType = DType Alors
GetDriveNames.Items.Add(DN.Name)
Fin si
Suivant
Fonction de fin
Module de fin

'Drive Types <br>
'Unknown: The type of drive is unknown. <br>
'NoRootDirectory: The drive does not have a root directory. <br>
'Removable: The drive is a removable storage device, such as a floppy disk drive or a USB flash drive. <br>
'Fixed: The drive is a fixed disk. <br>
'Network: The drive is a network drive. <br>
'CDRom: The drive is an optical disc device, such as a CD or DVD-ROM. <br>
'Ram: The drive is a RAM disk. <br>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top