2016-03-28 3 views
1

Je veux écrire un programme qui détecte les lecteurs flash.
Mais il y a un problème.
code:Détection si le disque est un lecteur flash

DriveInfo[] allDrives = DriveInfo.GetDrives(); 

     foreach (DriveInfo drive in DriveInfo.GetDrives()) 
     { 
      if (drive.DriveType == DriveType.Removable) 
      { 
      } 
     } 

Il fonctionne bien, mais il détecte aussi cdrom. Comment l'éviter?

+1

Cela suggère que votre ordinateur signale un type incorrect pour le lecteur cdrom. Avez-vous un logiciel d'écriture de disque qui pourrait causer cela? –

+0

Je n'utilise aucun logiciel de gravure parce que je ne brûle pas vraiment de Bdw de CD et de DVD. Mon PC fonctionne sous Windows 10 en ce moment mais je vais installer Windows 7 bientôt – Mudzay

+0

J'ai déjà vérifié avec Windows 7, donc juste pour m'assurer que j'ai vérifié sur Windows 10 aussi. Il semble toujours que votre ordinateur signale le mauvais type pour le lecteur optique. Est-ce qu'il se trouve connecté via USB? (Je n'ai pas de lecteur de DVD USB pour vérifier.) –

Répondre

3

Je n'ai pas de réponse pourquoi votre code ne fonctionne pas. Mais si vous voulez détecter les périphériques USB, vous pouvez également essayer avec l'WMI comme ceci:

ManagementObjectCollection drives = new ManagementObjectSearcher(
    "SELECT Caption, DeviceID FROM Win32_DiskDrive WHERE InterfaceType='USB'" 
).Get(); 

Ajouter l'Assemblée System.Management à votre projet pour le faire comme ça.

+0

Merci, va tester tout à l'heure. – Mudzay

+0

J'ai ajouté l'assembly System.Management mais ce code ne fonctionne pas. Je reçois "Le type ou le nom de l'espace de noms 'ManagementObjectCollection' est introuvable (vous manque une directive using ou une référence d'assembly?)" Erreur – Mudzay

+0

Regardez ici comment ajouter l'assembly manquant: https://msdn.microsoft.com/ de-de/bibliothèque/ee231595% 28v = vs.110% 29.aspx voici aussi un exemple: http://stackoverflow.com/questions/2157133/how-do-i-add-an-assembly-to-a -visual-studio-project-and-reference-it vous devez ajouter l'assembly System.Management à votre projet – Fruchtzwerg