hey leute...
ich habe mir ein script geschrieben und hätte gerne ein feedback (lob oder kritik) von euch
das script ist besonders praktisch wenn man viele dateine bzw. viel dateine eines types (z.b. mp3) löschen will.
so muss man dann nicht immer alles absuchen wo sich dieser dateityp befindet um ihn dann manuell zu löschen. mann kann allerdings auch einen dateinamen angeben und danach suchen lassen
Spoiler anzeigen
#include <Array.au3>
;==================================================================================================
; Function Name: _FileDeleteAll($s_path, $s_title = "_FileDeleteAll()", $i_delete_empty_folder = 0, $i_savedelete = 0, $s_filetype = False , $s_filename = False)
; Description: Delete all files
; Parameter(s): $a_path path where to search
; $s_title title of the window
; $$i_delete_empty_folder 0 = delete empty folders
; $i_savedelete 0 = normal delete
; 1 = save delete
; $s_filetype search and delete just one filetype e.g. .mp3
; $s_filename seach and delete just files with this name
; Version: v0.81 Build 2012-05-11 Beta
; Author(s): RedHead
;==================================================================================================
Func _FileDeleteAll($s_path, $s_title = "_FileDeleteAll()", $i_delete_empty_folder = 0, $i_savedelete = 0, $s_filetype = False , $s_filename = False)
Local $a_ergebnis[1] = [0]
$a_ergebnis = _FileFindAll($s_path, $a_ergebnis, $s_filetype, $s_filename)
If Not @error Then
If Int($a_ergebnis[0]) <> 0 Then
Local $i_onepercent = Round(Int($a_ergebnis[0])/100)
ProgressOn($s_title, "Dateien werden gelöscht!", "", -1, -1, 2 + 16)
For $i = 1 To $a_ergebnis[0]
If _FileOrFolder($a_ergebnis[$i]) <> 1 Then
If $i_savedelete = 0 Then
FileDelete($a_ergebnis[$i])
Else
_FileDeleteSave($a_ergebnis[$i])
EndIf
_ArrayDelete($a_ergebnis, $i)
EndIf
For $m = 1 To 100
If ($m * $i_onepercent) == $i Then ProgressSet(($m * 1), ($m * 1) & " %")
Next
Next
ProgressSet(100, "100 %")
Sleep(500)
ProgressOff()
If Not $s_filetype And $i_delete_empty_folder = 0 Then
$a_ergebnis[0] = UBound($a_ergebnis, 1) - 1
If Int($a_ergebnis[0]) <> 0 Then
For $i = 1 To $a_ergebnis[0]
If DirGetSize($a_ergebnis[$i]) = 0 Then
DirRemove($a_ergebnis[$i])
EndIf
Next
EndIf
EndIf
Else
Return SetError(-3)
EndIf
Else
Return @error
EndIf
EndFunc
Func _FileDeleteSave($s_pfad)
Local $h_file_open = FileOpen($s_pfad, 2)
For $x = 0 To 800
FileWrite($s_pfad, Random(100000, 9999999999))
Next
FileClose($h_file_open)
FileDelete($s_pfad)
EndFunc
Func _FileOrFolder($s_pfad)
Local $h_file_open = FileOpen($s_pfad)
If FileClose($h_file_open) = 0 Then
Return 1 ; Ordner
Else
Return 0 ; Datei
EndIf
EndFunc
Func _FileFindAll($s_path, ByRef $a_found, $s_filetype = False, $s_filename = False)
If $s_path == "" Or Not IsArray($a_found) Then Return SetError(-1)
If StringRegExp(StringLeft($s_path, 1), "[a-zA-Z]") And StringMid($s_path, 2, 1) == ":" Then
If StringRight($s_path, 1) <> "\" Then $s_path &= "\"
Local $s_suchen, $s_weitersuchen
If $s_filetype Then
If StringLeft($s_filetype, 1) <> "*" Then $s_filetype = "*" & $s_filetype
EndIf
$s_suchen = FileFindFirstFile($s_path & "*")
If $s_suchen == -1 Then Return SetError(-2)
While 1
$s_weitersuchen = FileFindNextFile($s_suchen)
If @error Then ExitLoop
If @extended Then _FileFindAll($s_path & $s_weitersuchen & "\", $a_found, $s_filetype, $s_filename)
If $s_filetype And Not $s_filename Then
If StringRight($s_weitersuchen, StringLen($s_filetype) - 1) = StringTrimLeft($s_filetype, 1) Then _ArrayAdd($a_found, $s_path & $s_weitersuchen)
ElseIf $s_filename And Not $s_filetype Then
If StringLeft($s_weitersuchen, StringLen($s_filename)) = $s_filename Then _ArrayAdd($a_found, $s_path & $s_weitersuchen)
ElseIf $s_filename And $s_filetype Then
If StringRight($s_weitersuchen, StringLen($s_filetype) - 1) = StringTrimLeft($s_filetype, 1) And _
StringLeft($s_weitersuchen, StringLen($s_filename)) = $s_filename Then _ArrayAdd($a_found, $s_path & $s_weitersuchen)
Else
_ArrayAdd($a_found, $s_path & $s_weitersuchen)
EndIf
WEnd
$a_found[0] = UBound($a_found) - 1
Return $a_found
Else
Return SetError(-1)
EndIf
EndFunc