#include <Array.au3>
Local $count = 0, $avArray[1][1], $iKeep = 5, _ ;要保留(最新)的文件数
$dirpath = @ScriptDir & "\BackUp" ;要删除文件的目录路径
; 显示当前目录中所有文件的文件名
$search = FileFindFirstFile($dirpath & "*.*")
; 检查搜索是否成功
If $search = -1 Then
MsgBox(0, "错误", "没有文件/目录 匹配搜索")
Exit
EndIf
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
If StringInStr(FileGetAttrib($dirpath & $file), "D") > 0 Then
;ConsoleWrite(@LF &"目录: "& $file & @CR)
Else
$count += 1
ReDim $avArray[$count + 1][2]
$avArray[0][0] = $count
$avArray[$count][0] = FileGetTime($dirpath & $file, 0, 1)
If @error Then $avArray[$count][0] = FileGetTime($dirpath & $file, 1, 1)
$avArray[$count][1] = $file
;ConsoleWrite(@LF &" 时间: "& $avArray[$count][0] &" 文件: "& $avArray[$count][1] & @CR)
EndIf
WEnd
; 关闭搜索句柄
FileClose($search)
_ArraySort($avArray, 1, 1, $avArray[0][0], 0) ;以时间递减排序
_ArrayDisplay($avArray, "$avArray 为二维数组")
For $i = $iKeep + 1 To $avArray[0][0] ;保留最新的 5个文件
ConsoleWrite(@LF & " 要删除的文件: " & $dirpath & $avArray[$i][1] & @CR)
;删除文件!!!
;FileDelete($dirpath & $avArray[$i][1])
Next
|