nur bestimmte Laufwerke anzeigen

  • VB.NET
  • .NET 5–6

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    nur bestimmte Laufwerke anzeigen

    Hallo Zusammen,

    ich lass mir in einer ComboBox die DriveType.Removable anzeigen.
    Was ja auch klappt.
    Nun sind dies ja USB Laufwerke - in meinem Fall können dies ganz normale USB Laufwerke (Speichersticks) sein,
    aber auch ganz spezielle USB Stick denen "AUF KEINEM FALL" Daten geschrieben werden dürfen.

    Nun mein Problem es werden immer alle USB Laufwerke angezeigt!
    ich möchte aber das ich defenieren kann welches die speziellen USB Laufwerke sind (die speziellen haben einen eindeutigen VolumeLabel,
    diese sollten nicht in der ComboBox angezeigt werden.

    Perfekt wäre wenn ich in der einen ComboBox nur die "speziellen" und in einer anderen die "normalen" angezeigt werden.
    Zum weiterverarbeiten brauche ich aber den Laufwerksbuchstaben und nicht das VolumeLabel.

    Hintergrund es muss eine Komplettsicherung von den "speziellen" USB Sticks auf einen "normalen" USB Stick gemacht werden, deshalb die klare Abgrenzung.

    ich hoffe ich konnte mich einigermaßen verständlich ausdrücken
    @Jürgen_D So was:

    VB.NET-Quellcode

    1. Dim di = New System.IO.DriveInfo("c:")

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Guten Morgen RodFromGermany,
    sorry verstehe das jetzt nicht ganz was Du meinst.

    aktuell sieht es so bei mir aus:

    VB.NET-Quellcode

    1. Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. With ComboBox1
    3. .BeginUpdate()
    4. .Items.Clear()
    5. For Each drv As IO.DriveInfo In IO.DriveInfo.GetDrives
    6. If drv.DriveType = IO.DriveType.Removable Then ' Removable = USB Stick
    7. .Items.Add(drv.VolumeLabel)
    8. End If
    9. Next
    10. .EndUpdate()


    wie geschrieben habe ich USB Sticks die eine Eindeutige Bezeichnung haben welche auch nicht verändert bzw. umbenannt werden kann (z.B. Turok-251) - in der ComboBox sollten nun entweder nur die Laufwerke mit diesem Namen oder eben alle anderen Laufwerke angezeigt werden.
    Wichtig wäre das der Laufwerksbuchstabe angezeigt wird, (nicht der Name) da ich diesen Laufwerksbuchstabe weitervewenden möchte.

    Also wenn USB Laufwerk d: und g: eben Turok-251 als Label haben soll in der ComboBox eben d:\ und g:\ nur zur Auswahl stehen - in einer anderen ComboBox nur die USB Laufwerke welche nicht den Label Turok-251 haben.
    @Jürgen_D Sieh Dir alle Properties von DriveInfo an:
    docs.microsoft.com/de-de/dotne…iveinfo.name?view=net-6.0
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Jürgen_D schrieb:

    Also wenn USB Laufwerk d: und g: eben Turok-251 als Label haben soll in der ComboBox eben d:\ und g:\ nur zur Auswahl stehen - in einer anderen ComboBox nur die USB Laufwerke welche nicht den Label Turok-251 haben.

    VB.NET-Quellcode

    1. ​If drv.DriveType = IO.DriveType.Removable Then ' Removable = USB Stick
    2. If drv.VolumeLabel.StartsWith("Turok") Then
    3. ComboBox1.Items.Add(drv.VolumeLabel)
    4. Else
    5. ComboBox2.Items.Add(drv.VolumeLabel)
    6. End If
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    @ErfinderDesRades Das sind sie, die jungen Kollegen, sind nur zufrieden, wenn sie fertige Lösungen präaentiert bekommen.
    Selber eine Lösung zu erarbeiten ist ja mit Denken usw. verbunden, aber das funktioniert nicht bei Lernbefreiung und Beratungsresistenz.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!