Dateien mit bestimmtem Dateityp löschen

  • Hi!
    wie schaffe ich es nur Dateien mit einer bestimmten Endung (z.B. .txt) zu löschen? Also alle aus einem Ordner
    MfG
    MOZ

    3 Mal editiert, zuletzt von MOZ (21. Januar 2009 um 21:33)

  • Hi,

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <File.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $path = "C:\"

    [/autoit] [autoit][/autoit] [autoit]

    $files = _FileListToArray($path, "*.txt", 1)
    If @error Then
    MsgBox(48, "Error", "No Files\Folders Found.")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    _ArrayDisplay($files)

    [/autoit] [autoit][/autoit] [autoit]

    for $i = 1 to UBound($files)-1
    FileDelete($path & $files[$i])
    Next

    [/autoit]

    Bezieht allerdings Unterordner nicht mit ein.
    Aber dafür hat BugFix mal ne schöne Funktion geschrieben, mit der man auch Dateien in Unterordnern finden kann...

  • Vielen dank! :)
    Hmm klappt bei mir nicht. Ich glaube wegen Vista. Ohne "Als Admin ausführen" findet der die Dateien nichtmal
    Was muss ich ändern?

    Einmal editiert, zuletzt von MOZ (21. Januar 2009 um 19:57)

  • Hallo Moz!

    statt
    FileDelete($path & $files[$i])
    schreibst du mal (setz das einfach mit; auf Kommentar)
    Msgbox(0,"ich will folgendes löschen", $path & $files[$i])
    rein
    und schaust Dir den angezeigten Pfad an, stimmt der oder fehlt da vielleicht der Backslash zwischen Verzeichnis und Datei??

    sind die Dateien offen (wenn einer z.B. mit dem Acrobat Reader eine info.pdf offen hat, dann kann ich die nicht so einfach löschen)?? (ob das MS-Kommandozeilentool openfiles geht unter Vista muß ich passen)

    Startest du das Programm manuell oder mittels Zeitgesteuertem Befehl (dann bist Du nämlich Benutzer SYSTEM)???

    Das gleiche Problem hast Du, wenn Du als Dienst arbeitest.

    Grüße

    German