Die in einer ListBox angezeiten Dateien löschen

  • .NET (FX) 4.5–4.8
  • VB.NET

Es gibt 86 Antworten in diesem Thema. Der letzte Beitrag () ist von MichaHo.

    @knuepel DataSource ist eine Property von Controls, ihr kannst SDu geeignete Daten zuweisen:
    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!
    Hallo zusammen,
    ich möchte gerne dieses Thema noch mal aufnehmen, leider habe ich es nicht hin bekommen.

    In einer ListBox soll der Inhalt (nur Datei Name) des Ordner angezeigt werden, dass habe ich mit Hilfe hinbekommen.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    3. Dim fi() As IO.FileInfo = New IO.DirectoryInfo("F:\").GetFiles("*.*", IO.SearchOption.TopDirectoryOnly)
    4. Me.ListBox1.DataSource = fi
    5. Me.ListBox1.DisplayMember = "Name"
    6. End Sub
    7. End Class


    Nun gibt es im Ordner F:\ zwei Unterordner. Diese zwei Ordner heißen Test1 und Test2 (also F:\Test1 und F:\Test2).
    Nun soll in der ListBox der Inhalt (auch nur Datei Name) von Unterordner Test1 oder Test2 angezeigt werden. Die Auswahl ob Unterordner Test1 oder Test2 soll über eine ComboBox erfolgen. Leider funktioniert dieser Code nicht, es wird bei Auswahl Test1 oder Test2 in der ComboBox nichts in der Listbox angezeigt.

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Private Sub Form1_Load(sender As Object, e As EventArgs)
    4. Using fb As New FolderBrowserDialog()
    5. If fb.ShowDialog() = DialogResult.OK Then
    6. ComboBox1.DataSource = New DirectoryInfo("F:\").GetDirectories()
    7. ComboBox1.DisplayMember = "Name"
    8. ComboBox1.ValueMember = "FullName"
    9. End If
    10. End Using
    11. End Sub
    12. Private Sub LoadFolderContent(path As String)
    13. Dim di As New System.IO.DirectoryInfo(path)
    14. If di.Exists Then
    15. ListBox1.Items.Clear()
    16. ListBox1.Items.AddRange(di.GetFiles())
    17. ListBox1.DisplayMember = "Name"
    18. End If
    19. End Sub
    20. Private Sub comboBox1_SelectedValueChanged(sender As Object, e As EventArgs)
    21. LoadFolderContent(ComboBox1.SelectedValue.ToString())
    22. End Sub
    23. End Class

    Hier ein Bild von der ComboBox Einstellung bzw. des Eintrags
    ich bin ein Anfänger, bitte habt Verständnis für meine Unwissenheit und eventuelle schlecht gestellte Fragen ?(

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „knuepel“ ()

    hallo, habe gesehen man kann das super nutzen, um alle dokumente zu durchsuchen und es aus zu geben


    VB.NET-Quellcode

    1. Dim fi() As IO.FileInfo = New IO.DirectoryInfo("C:\").GetFiles("*.doc", IO.SearchOption.AllDirectories)


    einziges Problem das ich noch habe, er macht nciht weiter wenn ein zugriff verweigert.

    kann mir hier jemand helfen?

    a.pennin schrieb:


    kann mir hier jemand helfen?


    Vielleicht möchtest du für deine Frage einen eigenen Thread eröffnen? In andere Threads mit anderen Fragen reinzugrätschen ist nicht so gerne gesehen. Dann hilft dir sicher jemand :)
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    knuepel schrieb:

    Okay habe es in Dim di As New System.IO.DirectoryInfo("F:\") geändert :P , funzzt trotzdem nicht :(

    Wie wäre es mit Dim di = New IO.DirectoryInfo("F:\" & ComboBox1.SelectedValue.ToString() & "\"
    "Hier könnte Ihre Werbung stehen..."
    Leider auch ohne Erfolg :(

    VB.NET-Quellcode

    1. ​Imports System.IO
    2. Public Class Form1
    3. Private Sub Form1_Load(sender As Object, e As EventArgs)
    4. Using fb As New FolderBrowserDialog()
    5. If fb.ShowDialog() = DialogResult.OK Then
    6. ComboBox1.DataSource = New DirectoryInfo("F:\").GetDirectories()
    7. ComboBox1.DisplayMember = "Name"
    8. ComboBox1.ValueMember = "FullName"
    9. End If
    10. End Using
    11. End Sub
    12. Private Sub LoadFolderContent(path As String)
    13. Dim di = New IO.DirectoryInfo("F:\" & ComboBox1.SelectedValue.ToString() & "\")
    14. If di.Exists Then
    15. ListBox1.Items.Clear()
    16. ListBox1.Items.AddRange(di.GetFiles())
    17. ListBox1.DisplayMember = "Name"
    18. End If
    19. End Sub
    20. Private Sub comboBox1_SelectedValueChanged(sender As Object, e As EventArgs)
    21. LoadFolderContent(ComboBox1.SelectedValue.ToString())
    22. End Sub
    23. End Class
    ich bin ein Anfänger, bitte habt Verständnis für meine Unwissenheit und eventuelle schlecht gestellte Fragen ?(

    VB.NET-Quellcode

    1. Private Sub LoadFolderContent(path As String)
    2. Dim di = New IO.DirectoryInfo("F:\" & path & "\")
    3. If di.Exists Then
    4. ListBox1.Items.Clear()
    5. ListBox1.Items.AddRange(di.GetFiles())
    6. ListBox1.DisplayMember = "Name"
    7. End If
    8. End Sub


    hast Du denn mal nen Haltepunkt gesetzt und geschaut wie Dein Pfad aussieht? @ErfinderDesRades hatte Dir da ja einen Link zu gepostet

    EDIT:

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Private Sub ComboBox1_SelectedValueChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedValueChanged
    4. LoadFolderContent(ComboBox1.SelectedValue.ToString())
    5. End Sub
    6. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    7. Using fb As New FolderBrowserDialog()
    8. If fb.ShowDialog() = DialogResult.OK Then
    9. ComboBox1.DataSource = New DirectoryInfo(fb.SelectedPath).GetDirectories()
    10. ComboBox1.DisplayMember = "Name"
    11. ComboBox1.ValueMember = "FullName"
    12. End If
    13. End Using
    14. End Sub
    15. Private Sub LoadFolderContent(path As String)
    16. Dim di = New DirectoryInfo(path)
    17. If di.Exists Then
    18. ListBox1.Items.Clear()
    19. ListBox1.Items.AddRange(di.GetFiles())
    20. ListBox1.DisplayMember = "Name"
    21. End If
    22. End Sub
    23. End Class

    funktioniert bei mir perfekt

    "Hier könnte Ihre Werbung stehen..."

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MichaHo“ ()

    Warum nutzt du in LoadFolderContent nicht den Pfad den du an diese Methode übergibst? Da sollte doch schon der Pfad drin stehen den du brauchst um die dortigen Dateien zu ermitteln. Stattdessen lädst du dort alles nochmal.

    path enthält ja bereits ComboBox1.SelectedValue was dem kompletten Pfad (z.B. F:/bla/bla) entspricht den du im FormLoad ermittel hast.

    -> Dim di = New IO.DirectoryInfo(path)
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    mrMo schrieb:

    path enthält ja bereits ComboBox1.SelectedValue was dem kompletten Pfad (z.B. F:/bla/bla) entspricht den du im FormLoad ermittel hast.


    Im heutigen ersten Beitrag habe ich es gemacht, es geht einfach nicht.

    VB.NET-Quellcode

    1. ​Private Sub LoadFolderContent(path As String)
    2. Dim di As New System.IO.DirectoryInfo(path)
    3. If di.Exists Then
    4. ListBox1.Items.Clear()
    5. ListBox1.Items.AddRange(di.GetFiles())
    6. ListBox1.DisplayMember = "Name"
    7. End If
    8. End Sub
    ich bin ein Anfänger, bitte habt Verständnis für meine Unwissenheit und eventuelle schlecht gestellte Fragen ?(

    MichaHo schrieb:

    P.S. hast Du meinen Edit oben gesehen?

    habe ich leider nicht gesehen, sorry.

    Wo gibst du den Ordner "F:\" an?

    Cheffboss schrieb:

    Ich habe den Code getestet, auf meinen Computer geht es.



    Bei mir läuft er nur bedingt, ich bekomme die Aufforderung durch einen Explorer zur Angabe des Ordner
    ich bin ein Anfänger, bitte habt Verständnis für meine Unwissenheit und eventuelle schlecht gestellte Fragen ?(

    MichaHo schrieb:

    Hi,
    den wählst du über deinen FileBrowserDialog aus, den hast Du im Form Load Event ja deklariert.
    wenn du das nicht benötigst, kannst Du das auch alles verkürzen...


    nein das ist nicht gewollt. Kannst du mir bitte sagen was ich da abändern muss?
    hierdurch wird doch der Explorer geöffnet oder?
    Using fb As New FolderBrowserDialog()
    If fb.ShowDialog() = DialogResult.OK Then
    ich bin ein Anfänger, bitte habt Verständnis für meine Unwissenheit und eventuelle schlecht gestellte Fragen ?(