knuefi
Goto Top

Die in einer angezeigten ListBox Dateien in den Ordner per Button löschen

Hallo,

ich habe folgendes Problem und hoffe mir kann jemand weiter helfen.
Per Button werden mir die Inhalte eines Ordner in einer ListBox angezeigt, nun sollen die in der ListBox angezeigten Dateien per Button in den Ordner gelöscht werden.
Das habe ich versucht:
 Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Try
            My.Computer.FileSystem.DeleteFile(ListBox1)
        Catch ex As Exception
            MsgBox("Es ist ein Fehler aufgetreten !", MsgBoxStyle.Critical, "Fehler")  
        End Try
    End Sub

Gruß

Content-ID: 318436

Url: https://administrator.de/contentid/318436

Ausgedruckt am: 25.11.2024 um 06:11 Uhr

StefanKittel
StefanKittel 20.10.2016 um 07:24:32 Uhr
Goto Top
Moin,

allgemein zum Testen kann man immer prima DeleteFile durch MsgBox ersetzen um zu schauen was dort ankommt.

Zur Frage
ListBox1 ist das Listen-Objekt selber.
Vermutlich ist es ListBox1.value oder ähnlich.

Vieleicht fehlt auch einfach nur der Pfad.

Stefan
StefanKittel
StefanKittel 20.10.2016 um 07:37:49 Uhr
Goto Top
Was sagt eigentlich die Exception?
Oder wird sie nicht ausgelöst?
atze187
atze187 20.10.2016 um 08:02:33 Uhr
Goto Top
Wo ist das Problem? Und warum ist das mit C/C++ getagged?
atze187
Lösung atze187 20.10.2016 um 08:10:18 Uhr
Goto Top
Problem erkannt. Du übergibst ListBox1 als Parameter an DeleteFile, was nicht klappen kann. Visual Studio dürfte das nicht mal kompilieren, da DeleteFile auf jeden Fall einen String als Parameter für die zu löschende Datei erwartet.

Richtigerweise wäre, falls du in der Listbox die vollständigen Dateinamen inklusive Pfadangaben hast, folgendes:

For Each filename As String In ListBox1.Items
        Try
            My.Computer.FileSystem.DeleteFile(filename)
        Catch ex As Exception
            MsgBox("Es ist ein Fehler aufgetreten !", MsgBoxStyle.Critical, "Fehler")  
        End Try
Next

Falls die Items der Listbox vom Typ FileInfo sind und du die DisplayMember-Eigenschaft gesetzt hast, dann müsste es in etwa so sein:

For Each fileinfo As FileInfo In ListBox1.Items
        Try
            My.Computer.FileSystem.DeleteFile(fileinfo.FullName)
        Catch ex As Exception
            MsgBox("Es ist ein Fehler aufgetreten !", MsgBoxStyle.Critical, "Fehler")  
        End Try
Next
Knuefi
Knuefi 20.10.2016 aktualisiert um 23:38:13 Uhr
Goto Top
erstmal Danke an euch,

in der ListBox wird nur der Dateiname angezeigt, hier der Code
 Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        Dim dir As New DirectoryInfo("D:\" & comboTarget.SelectedItem)  
        For Each file As FileInfo In dir.GetFiles
            Me.ListBox1.Items.Add(file.Name)
        Next
    End Sub

Edit:
Ich habe den Fehler gefunden.
Danke für eure Tips