Bestimmte Dateien löschen

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Trade.

    Bestimmte Dateien löschen

    Hallo, VB-Paradise-Community!

    VB.NET-Quellcode

    1. Dim Elements As String()
    2. Sub Files()
    3. Elements = IO.Directory.GetFiles("C:\Program Files (x86)\Ordner1")
    4. For i As Integer = 0 To UBound(Elements)
    5. Dim Thread As New Threading.Thread(AddressOf Threading)
    6. Thread.Start(i)
    7. Next
    8. End Sub
    9. Sub Threading(ByVal ID As Object)
    10. Dim File As New IO.FileInfo(Elements(ID))
    11. File.CopyTo(C:\Program Files (x86)\Ordner2 + "\" + File.Name)
    12. End Sub


    Ich würde gerne die eingetragenen Dateien, die in der Elements-String() vorhanden sind, alle löschen lassen.
    Nur das Problem ist, mit File.Delete(C:\Program Files (x86)\Ordner2 + "\" + File.Name) funktioniert es nicht:
    "Fehler bei der Überladungsauflösung, da keine zugreifbare "Delete" diese Anzahl an Argumenten akzeptiert."

    Ich lasse den Sub quasi Dateien aus dem Ordner1 in den Ordner2 kopieren (funktioniert),
    will aber das die selben Dateien wo zum kopieren benutzt wurden (aus Ordner1) in Ordner2 löschen.

    Nun meine Frage:
    Wie kann ich die Dateien aus einem Ordner auflisten lassen (Namen + Dateiendung) und die Dateien löschen?

    Ich hoffe, ich hab es verständlich erklärt.
    Vielen Dank für Eure Aufmerksamkeit!
    Das erwartet einen String. Du übergibst das einfach so.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Danke für deine Antwort.

    Ich weiß leider nur nicht, wie ich die einzelnen Dateinamen auslesen und aus einem Ordner löschen kann.
    Wenn Du mir ein Beispiel nennen könntest, wäre ich dir sehr Dankbar.

    Mein aktueller Code:

    VB.NET-Quellcode

    1. Dim DeleteFiles As String()
    2. DeleteFiles = IO.Directory.GetFiles("C:\Program Files (x86)\Ordner1")
    3. For Each i As String In DeleteFiles
    4. IO.File.Delete(i)
    5. Next

    Die Dateien die mit IO.Directory.GetFiles(Path) aufgelistet werden, enthalten den Pfad der Dateien.
    Wie kann ich den Pfad der ganzen Dateien ändern?
    Ich möchte die Dateien nicht in dem Ordner löschen, woher sie sind,
    ich lasse sie ja von dem Ordner in einen anderen kopieren.
    In dem zweiten Ordner, wo die Dateien reinkopiert wurden, möchte ich ja die Dateien löschen.
    Hab es geschafft.

    VB.NET-Quellcode

    1. Dim DeleteFiles As String()
    2. Dim FileName As String
    3. Private Sub UninstallButton_Click(sender As Object, e As EventArgs) Handles UninstallButton.Click
    4. If Install = False Then
    5. DeleteFiles = IO.Directory.GetFiles(ModPath)
    6. For i As Integer = 0 To UBound(DeleteFiles)
    7. FileName = System.IO.Path.GetFileName(DeleteFiles(i))
    8. IO.File.Delete(GTAVPath & "\" & FileName)
    9. Next
    10. Install = True : WriteFile("Settings", "Install", True, SettingsPath)
    11. EnableButtons()
    12. End If
    13. End Sub
    Glückwunsch.
    Ich würde allerdings noch ein paar Sachen anders machen:
    • ​DirectoryInfo und ​FileInfo nutzen.
    • ​UBound ist eine böse Funktion aus VB6, nimm dafür einfach die Property ​Length und subtrahiere - 1.
    • ​Path.Combine benutzen.


    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: