|
本帖最后由 znlvhui 于 2011-1-29 19:34 编辑
;首先感谢"smartzbs",因为这段代码是他给的。另外这段代码测试过程中出现问题。
#include <File.au3>
#include <Array.au3>
$sDir = IniRead(@ScriptDir & "\config.ini", "执行路径", "路径", "");你要处理的文件夹 如 @ScriptDir
If StringRight($sDir, 1)="\" Then $sDir = StringTrimRight($sDir, 1)
$aFile = _FileListToArray($sDir)
$iFiles = 5;保留5个文件
If UBound($aFile)>$iFiles+1 Then
Local $aReFile[UBound($aFile)-1-$iFiles][2] , $FileTime
For $i = $iFiles+1 To UBound($aFile)-1
;0 = Modified (default)
;1 = Created
;2 = Accessed
$FileTime = FileGetTime($sDir & "\" & $aFile[$i], 0);参数0修改时间,参数1创建时间,自己根据需要改
$FileTime = _ArrayToString($FileTime, "")
$aReFile[$i-1-$iFiles][0] = $sDir & "\" & $aFile[$i]
$aReFile[$i-1-$iFiles][1] = $FileTime
Next
;_ArraySort($aReFile, 1, 0, 0, 1);根据文件时间排序
;_ArrayDisplay($aReFile)
For $i = 0 To UBound($aReFile)-1
FileDelete($aReFile[$i][0]);要删除文件就把这句注释去掉
Next
EndIf
;第一次运行可以正确,当目录下有五个文件时再新建文件后运行会错误,不能识别修改时间。 |
|