Bonjour,


Mon problème : dresser la liste des unités externes de mon simple PC (hors réseau) et trouver leur type.
Environnement : VB 2013 Express à jour (la 5), sous Windows 8.1 à jour

J'ai trouvé (en cherchant sur Internet en langues F, GB et PL et sur divers forum dont celui-ci) à plusieurs reprises deux solutions proposées, et les ai réunies dans la sub suivante "Test_Lecteurs"
Malheureusement, aucune d'elle ne sait distinguer un lecteur interne d'un externe.
Mes lecteurs C, E et F (trois partitions du disque interne), G et H sont tous du même type : soit Fixed (3), soit Removable (2)
Je ne peux me résoudre à penser qu'en VB 2013 il est impossible de distinguer un disque dur externe d'un lecteur interne...
surtout à la vue de l'immensité des résultats fournis par des logiciels de test de disques.

QUESTION : question évidente, quelqu'un a-t-il remarqué ces bizarreries, quelqu'un a-t-il une solution de remplacement ?

Je vous remercie par avance, espérant avoir été clair.


Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Private Sub Test_Lecteurs()
    ' dresser la liste des unités externes connectées
    ' Normalement, les retours possibles sont :
    ' - Unknown         : 0
    ' - NoRootDirectory : 1
    ' - Removable       : 2
    ' - Fixed           : 3
    ' - Network         : 4
    ' - CDRom           : 5
    ' - Ram             : 6
 
    Dim Liste As String = ""
 
    ' ======================================================
    ' avec cette méthode ils sont tous données Fixed (3)
    ' sauf le lecteur de CD : CDRom (5)
    ' ======================================================
    Dim drives() As IO.DriveInfo = IO.DriveInfo.GetDrives
 
    For Each drv As IO.DriveInfo In drives
        Liste = Liste & drv.Name & ", " & drv.DriveType & vbCrLf
    Next
 
    Liste = Liste & vbCrLf
 
    ' ======================================================
    ' avec cette méthode ils sont tous données Removable (2)
    ' sauf le lecteur de CD : Network (4)
    ' ======================================================
    Dim FSO = CreateObject("Scripting.FileSystemObject")
 
    For Each drv In FSO.Drives
    Liste = Liste & drv.DriveLetter & ", " & drv.DriveType & vbCrLf
    Next
 
    MsgBox(Liste)
End Sub