Hi,
ich habe an meinem PC interne Festplatten (z.Teil als Partition der Systemresidenz mit festem Laufwerksbuchstaben), externe Festplatten über USB, und auch USB Sticks ...
Jetzt würde ich gern herausfinden, ob ein Laufwerksbuchstabe auf eine externe Festplatte verweist. Hier mein Code:
Die Ausgabe sieht wie folgt aus:
d.Name=C:\
d.VolumeLabel=WINRES
d.DriveType=Fixed
d.DriveFormat=NTFS
d.Root=C:\
d.=IsReadyTrue
t.Attributs=AutoLayout, AnsiClass, Class, Public, Sealed, Serializable, BeforeFieldInit
t.BaseType=System.Object
d.Name=E:\
d.VolumeLabel=ETOSH
d.DriveType=Fixed
d.DriveFormat=NTFS
d.Root=E:\
d.=IsReadyTrue
t.Attributs=AutoLayout, AnsiClass, Class, Public, Sealed, Serializable, BeforeFieldInit
t.BaseType=System.Object
d.Name=G:\
d.VolumeLabel=EXTUSB
d.DriveType=Removable
d.DriveFormat=FAT32
d.Root=G:\
d.=IsReadyTrue
t.Attributs=AutoLayout, AnsiClass, Class, Public, Sealed, Serializable, BeforeFieldInit
t.BaseType=System.Object
C: ist eine interne Festplatte, F: ist eine externe Festplatte udn G: ist ein USB Stick.
Den USB Stick erkenne ich an "d.DriveType=Removable"
Aber soviel ich auch suche ... ich finde keine Unterscheidung zwischen einer internen Festplatte (bzw. Partition) und einem externen Laufwerk.
Ein paar Attribute, die man mit Gettype bekommt, habe ich spaßeshalber ausgegeben ... aber wie man sieht ist da nix Brauchbares dabei ...
Kann jemand meine Suche abkürzen ? Vielleicht gibt es ja auch keine Unterscheidung ... damit könnte ich zur Not leben, schließlich kenne ich die Label meiner Festplatten einigermaßen ...
Aber schöner wäre das schon, wenn ich das per Programm ermitteln könnte.
LG
Peter
ich habe an meinem PC interne Festplatten (z.Teil als Partition der Systemresidenz mit festem Laufwerksbuchstaben), externe Festplatten über USB, und auch USB Sticks ...
Jetzt würde ich gern herausfinden, ob ein Laufwerksbuchstabe auf eine externe Festplatte verweist. Hier mein Code:
VB.NET-Quellcode
- 'Load drive list
- Dim allDrives() As DriveInfo = DriveInfo.GetDrives()
- For Each d As DriveInfo In allDrives
- Debug.Print("d.Name=" & d.Name)
- If d.IsReady Then
- Debug.Print("d.VolumeLabel=" & d.VolumeLabel & NewLine &
- "d.DriveType=" & d.DriveType.ToString & NewLine &
- "d.DriveFormat=" & d.DriveFormat & NewLine &
- "d.Root=" & d.RootDirectory.Name & NewLine &
- "d.=IsReady" & d.IsReady.ToString & NewLine)
- Dim t = d.GetType()
- Debug.Print("t.Attributs=" & t.Attributes.ToString & NewLine &
- "t.BaseType=" & t.BaseType.ToString & NewLine)
- Else
- Debug.Print("")
- End If
Die Ausgabe sieht wie folgt aus:
d.Name=C:\
d.VolumeLabel=WINRES
d.DriveType=Fixed
d.DriveFormat=NTFS
d.Root=C:\
d.=IsReadyTrue
t.Attributs=AutoLayout, AnsiClass, Class, Public, Sealed, Serializable, BeforeFieldInit
t.BaseType=System.Object
d.Name=E:\
d.VolumeLabel=ETOSH
d.DriveType=Fixed
d.DriveFormat=NTFS
d.Root=E:\
d.=IsReadyTrue
t.Attributs=AutoLayout, AnsiClass, Class, Public, Sealed, Serializable, BeforeFieldInit
t.BaseType=System.Object
d.Name=G:\
d.VolumeLabel=EXTUSB
d.DriveType=Removable
d.DriveFormat=FAT32
d.Root=G:\
d.=IsReadyTrue
t.Attributs=AutoLayout, AnsiClass, Class, Public, Sealed, Serializable, BeforeFieldInit
t.BaseType=System.Object
C: ist eine interne Festplatte, F: ist eine externe Festplatte udn G: ist ein USB Stick.
Den USB Stick erkenne ich an "d.DriveType=Removable"
Aber soviel ich auch suche ... ich finde keine Unterscheidung zwischen einer internen Festplatte (bzw. Partition) und einem externen Laufwerk.
Ein paar Attribute, die man mit Gettype bekommt, habe ich spaßeshalber ausgegeben ... aber wie man sieht ist da nix Brauchbares dabei ...
Kann jemand meine Suche abkürzen ? Vielleicht gibt es ja auch keine Unterscheidung ... damit könnte ich zur Not leben, schließlich kenne ich die Label meiner Festplatten einigermaßen ...
Aber schöner wäre das schon, wenn ich das per Programm ermitteln könnte.
LG
Peter