Что нового

Автоматизация Помогите с созданием и удалением папок

Пост номер 4 был отмечен как лучший ответ.

DmitryT

Новичок
Сообщения
8
Репутация
0
Пытался создать скрипт который будет создавать папки, копировать в нее файлы и после удалять более старые папки.
Код:
$i = 1
While 1
Sleep (5000)
DirCreate('C:\' & $i)
FileCopy ("C:\Sound Empire\123\*.db" , 'C:\' & $i , 1)
$i = $i+1
$j = $i-3
DirRemove ('C:\' & $j , 1)
WEnd

В итоге он создает 2-3 папки а потом просто удаляет их.
Без удаления папок все работает нормально
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 610
Репутация
2 438
скрипт который будет создавать папки, копировать в нее файлы и после удалять более старые папки
Что значит более старые? на 3 папки созданные ранее?

В итоге он создает 2-3 папки а потом просто удаляет их.
Он создаёт папки 1 по 4, потом удаляет папку 1, создаёт 5, удаляет 2 и т.д.
 
Автор
D

DmitryT

Новичок
Сообщения
8
Репутация
0
Что значит более старые? на 3 папки созданные ранее?


Он создаёт папки 1 по 4, потом удаляет папку 1, создаёт 5, удаляет 2 и т.д.
Да на 3 папки ранее. во общем потом будут другие тайминги sleep (он будет раз в день создавать папку и копировать туда файлы базы данных) и чтобы не захламлять компьютер надо чтобы были сохранены только последние 3-4 дня.
Он создает папку 1, 2, 3, а потом удаляет 1,2,3 и все. больше не создает, хотя вроде бы как по логике должен
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 610
Репутация
2 438
Вот такой скрипт по завершению должен оставить папки 3, 4, и 5.

Код:
For $i = 1 To 5
    Sleep(1500)
    DirCreate('C:\' & $i)
    ;FileCopy("C:\Sound Empire\123\*.db", 'C:\' & $i & '\', 1)
    
    If $i - 3 > 0 Then
        DirRemove('C:\' & $i - 3, 1)
    EndIf
Next


чтобы не захламлять компьютер надо чтобы были сохранены только последние 3-4 дня.
Можно просто проверять по дате.
Вот пример скрипта, который можно добавить в автозапуске системы.
Он будет раз в день создавать резерв. копию данных в папке с именем даты, и удалять по необходимости старые папки резерв. копии (устанавливается переменной $iKepp_Backup_Days).
Код:
#NoTrayIcon
#include <File.au3>
#include <Date.au3>

Global $sAppName = 'MyBackup'
Global $sBackup_Files = 'C:\Sound Empire\123\*.db'
Global $sBackup_Path = 'C:\DB_Backups'
Global $iKepp_Backup_Days = 3
Global $sLastBackup = RegRead('HKCU\Software\' & $sAppName, 'Last Backup')

While 1
    If $sLastBackup = '' Or _DateDiff('D', $sLastBackup, _NowCalc()) >= 1 Then
        $sLastBackup = _NowCalc()
        RegWrite('HKCU\Software\' & $sAppName, 'Last Backup', 'REG_SZ', $sLastBackup)
        _Backup()
    EndIf
    
    Sleep(5000)
WEnd

Func _Backup()
    FileCopy($sBackup_Files, $sBackup_Path & '\' & StringReplace(_NowCalcDate(), '/', ';') & '\', 9)
    
    Local $aFiles = _FileListToArray($sBackup_Path, '*', $FLTA_FOLDERS, False)
    
    For $i = 1 To UBound($aFiles) - 1
        If _DateDiff('D', StringReplace($aFiles[$i], ';', '/'), _NowCalcDate()) > $iKepp_Backup_Days Then
            DirRemove($sBackup_Path & '\' & $aFiles[$i], 1)
        EndIf
    Next
EndFunc
 
Автор
D

DmitryT

Новичок
Сообщения
8
Репутация
0
Вот такой скрипт по завершению должен оставить папки 3, 4, и 5.

Код:
For $i = 1 To 5
    Sleep(1500)
    DirCreate('C:\' & $i)
    ;FileCopy("C:\Sound Empire\123\*.db", 'C:\' & $i & '\', 1)
   
    If $i - 3 > 0 Then
        DirRemove('C:\' & $i - 3, 1)
    EndIf
Next



Можно просто проверять по дате.
Вот пример скрипта, который можно добавить в автозапуске системы.
Он будет раз в день создавать резерв. копию данных в папке с именем даты, и удалять по необходимости старые папки резерв. копии (устанавливается переменной $iKepp_Backup_Days).
Код:
#NoTrayIcon
#include <File.au3>
#include <Date.au3>

Global $sAppName = 'MyBackup'
Global $sBackup_Files = 'C:\Sound Empire\123\*.db'
Global $sBackup_Path = 'C:\DB_Backups'
Global $iKepp_Backup_Days = 3
Global $sLastBackup = RegRead('HKCU\Software\' & $sAppName, 'Last Backup')

While 1
    If $sLastBackup = '' Or _DateDiff('D', $sLastBackup, _NowCalc()) >= 1 Then
        $sLastBackup = _NowCalc()
        RegWrite('HKCU\Software\' & $sAppName, 'Last Backup', 'REG_SZ', $sLastBackup)
        _Backup()
    EndIf
   
    Sleep(5000)
WEnd

Func _Backup()
    FileCopy($sBackup_Files, $sBackup_Path & '\' & StringReplace(_NowCalcDate(), '/', ';') & '\', 9)
   
    Local $aFiles = _FileListToArray($sBackup_Path, '*', $FLTA_FOLDERS, False)
   
    For $i = 1 To UBound($aFiles) - 1
        If _DateDiff('D', StringReplace($aFiles[$i], ';', '/'), _NowCalcDate()) > $iKepp_Backup_Days Then
            DirRemove($sBackup_Path & '\' & $aFiles[$i], 1)
        EndIf
    Next
EndFunc
Мне нужно чтобы это работало как бесконечный цикл и папки создавались до тех пор пока скрипт не будет выключен (с удалением 3х дневных папок), поэтому вариант с сохранением 3,4,5 папок мне не подходит. просто сама проблема именно с тем как мне написать чтобы удаляло все кроме 3х последних бекапов. Или при указании For $i = 1 To 50 он будет так же сохранять последние 3 папки только до 50й папки? Заранее извеняюсь за глупые вопросы, 2й день как изучаю устройства скриптов на autoit.
Сообщение автоматически объединено:

Вот такой скрипт по завершению должен оставить папки 3, 4, и 5.

Код:
For $i = 1 To 5
    Sleep(1500)
    DirCreate('C:\' & $i)
    ;FileCopy("C:\Sound Empire\123\*.db", 'C:\' & $i & '\', 1)
   
    If $i - 3 > 0 Then
        DirRemove('C:\' & $i - 3, 1)
    EndIf
Next



Можно просто проверять по дате.
Вот пример скрипта, который можно добавить в автозапуске системы.
Он будет раз в день создавать резерв. копию данных в папке с именем даты, и удалять по необходимости старые папки резерв. копии (устанавливается переменной $iKepp_Backup_Days).
Код:
#NoTrayIcon
#include <File.au3>
#include <Date.au3>

Global $sAppName = 'MyBackup'
Global $sBackup_Files = 'C:\Sound Empire\123\*.db'
Global $sBackup_Path = 'C:\DB_Backups'
Global $iKepp_Backup_Days = 3
Global $sLastBackup = RegRead('HKCU\Software\' & $sAppName, 'Last Backup')

While 1
    If $sLastBackup = '' Or _DateDiff('D', $sLastBackup, _NowCalc()) >= 1 Then
        $sLastBackup = _NowCalc()
        RegWrite('HKCU\Software\' & $sAppName, 'Last Backup', 'REG_SZ', $sLastBackup)
        _Backup()
    EndIf
   
    Sleep(5000)
WEnd

Func _Backup()
    FileCopy($sBackup_Files, $sBackup_Path & '\' & StringReplace(_NowCalcDate(), '/', ';') & '\', 9)
   
    Local $aFiles = _FileListToArray($sBackup_Path, '*', $FLTA_FOLDERS, False)
   
    For $i = 1 To UBound($aFiles) - 1
        If _DateDiff('D', StringReplace($aFiles[$i], ';', '/'), _NowCalcDate()) > $iKepp_Backup_Days Then
            DirRemove($sBackup_Path & '\' & $aFiles[$i], 1)
        EndIf
    Next
EndFunc
на счет 2го варианта я еще буду разбираться. слету не смогу сказать ничего
 

IMStrelcov

CTPEJIbLLOB
Сообщения
176
Репутация
31
Может чем поможет.
Код:
;Есть несколько методов обнаружения более старой папки:
;Способ 1 - авто-нумерация папок по порядку, как делает это Windows, если папка с таким именем уже существует.
;Проблема - если имеем папки 1, 2, 3, удалив папку 1, получим папки 2, 3, создав новую получим опять 1, 2, 3, теперь посути старые папка 2 и 3, но удалится первой папка 1, так как она первая по порядку.
;Способ 2 - определять папки по дате и времени ех последней модификации.
;Проблема - создав несколько папок подряд, они будут иметь одну и ту же дату и время. Для решения этой проблемы можно папки создавать с интервалом не менее одной секунды, но модифицировав старую папку, она будет считаться новее.
;Способ 3 - вести отдельный файл истории в который писать порядок создания папок и по нему определять какая папка старее.
;Проблема - требуеться создать и постоянно хранить файл истории создания папок.

#NoTrayIcon

;Способ 1
DirCreateNew_(@ScriptDir&'\test')
DirCreateNew_(@ScriptDir&'\test')
DirCreateNew_(@ScriptDir&'\test')
DirRemoveFirst_(@ScriptDir&'\test')
DirRemoveFirst_(@ScriptDir&'\test')
DirCreateNew_(@ScriptDir&'\test')
DirRemoveFirst_(@ScriptDir&'\test')

Exit

;Способ 2
Sleep(1100)
DirCreateNew_(@ScriptDir&'\test')
Sleep(1100)
DirCreateNew_(@ScriptDir&'\test')
Sleep(1100)
DirCreateNew_(@ScriptDir&'\test')
DirRemoveOld_(@ScriptDir)
DirRemoveOld_(@ScriptDir)
Sleep(1100)
DirCreateNew_(@ScriptDir&'\test')
DirRemoveOld_(@ScriptDir)

Exit

;Способ 3
Global $sLog = @ScriptDir&'\HistoryDirs.txt'
DirCreateNew_(@ScriptDir&'\test', $sLog)
DirCreateNew_(@ScriptDir&'\test', $sLog)
DirCreateNew_(@ScriptDir&'\test', $sLog)
DirRemoveLog_($sLog)
DirRemoveLog_($sLog)
DirCreateNew_(@ScriptDir&'\test', $sLog)
DirRemoveLog_($sLog)
UpdateLog_();Сохранить лог-историю в файл, который был указан в DirCreateNew_() и DirRemoveLog_()

Exit



;$_sDir = путь к папке для создания
;$_sLog = обновлять лог (путь к файлу) или нет (пустое значение)
Func DirCreateNew_($_sDir, $_sLog = '')
    Local $_iPrefix = 1
    While 1
        $_sDir = StringRegExpReplace($_sDir, '\A(.*?)(\h\([0-9]+\))?(\.[^\h]+)?\z', '$1 (' & $_iPrefix & ')$3')
        If Not FileExists($_sDir) Then ExitLoop
        $_iPrefix += 1
    WEnd
    DirCreate($_sDir)
    If @error Then Return SetError(@error, 0, $_sDir)
    If $_sLog <> '' Then UpdateLog_($_sLog, $_sDir)
    Return $_sDir
EndFunc

;найдет самую первую папку, указанную в $_sDir,подбирая порядковый номер и удалит ее.
Func DirRemoveFirst_($_sDir)
    Local $_iPrefix = 1
    While 1
        $_sDir = StringRegExpReplace($_sDir, '\A(.*?)(\h\([0-9]+\))?(\.[^\h]+)?\z', '$1 (' & $_iPrefix & ')$3')
        If FileExists($_sDir) Then ExitLoop
        $_iPrefix += 1
    WEnd
    DirRemove($_sDir, 1)
    Return $_sDir
EndFunc

;найдет в папке, указанной в $_sDir, самую старою папку по дате модификации и удалит ее.
Func DirRemoveOld_($_sDir)
    Local $_iTmp, $_sResult, $_iTime = 99999999999999
    Local $_sFile, $_hList = FileFindFirstFile($_sDir&'\*.*')
    While 1
        $_sFile = FileFindNextFile($_hList)
        If @error Then
            ExitLoop
        EndIf
        If @extended Then
            $_iTmp = FileGetTime ($_sDir&'\'&$_sFile, 0, 1)
            If $_iTmp < $_iTime Then
                $_iTime = $_iTmp
                $_sResult = $_sFile
            EndIf
        EndIf
    WEnd
    If $_sResult <> '' Then
        DirRemove($_sDir &'\'& $_sResult, 1)
        Return SetError(@error, 0, $_sResult)
    EndIf
    Return SetError(1)
EndFunc

;управляет логом
;$_sLog = имя файла истории который нужно открыть.
;               если пустая строка то, сохранит данные уже открытого файла истории.
;$_sDir = имя папки которое нужно добавить в историю.
;              если пустая строка то, удалит с диска папку, которая находится в верху списка истории.
Func UpdateLog_($_sLog = '', $_sDir = '')
    Local Static $_sFile = '', $_sList = ''
    If $_sLog <> $_sFile Then
        If $_sFile <> '' Then
            FileDelete($_sFile)
            FileWrite($_sFile, $_sList)
            $_sFile = ''
            $_sList = ''
        EndIf
        If $_sLog <> '' Then
            $_sList = FileRead($_sLog)
            $_sFile = $_sLog
        EndIf
    EndIf
    If $_sDir <> '' Then
        $_sList &= $_sDir &@CRLF
    Else
        $_sList = StringRegExp($_sList, '(?imsx)\v*([^\v]*)(.*)', 3)
        Local $_sTmp = $_sList[0]
        $_sList = $_sList[1]
        Return $_sTmp
    EndIf
EndFunc

Func DirRemoveLog_($_sLog)
    Local $_sDir = UpdateLog_($_sLog)
    If $_sDir <> '' Then
        DirRemove($_sDir, 1)
    EndIf
EndFunc
 
Автор
D

DmitryT

Новичок
Сообщения
8
Репутация
0
Может чем поможет.
Код:
;Есть несколько методов обнаружения более старой папки:
;Способ 1 - авто-нумерация папок по порядку, как делает это Windows, если папка с таким именем уже существует.
;Проблема - если имеем папки 1, 2, 3, удалив папку 1, получим папки 2, 3, создав новую получим опять 1, 2, 3, теперь посути старые папка 2 и 3, но удалится первой папка 1, так как она первая по порядку.
;Способ 2 - определять папки по дате и времени ех последней модификации.
;Проблема - создав несколько папок подряд, они будут иметь одну и ту же дату и время. Для решения этой проблемы можно папки создавать с интервалом не менее одной секунды, но модифицировав старую папку, она будет считаться новее.
;Способ 3 - вести отдельный файл истории в который писать порядок создания папок и по нему определять какая папка старее.
;Проблема - требуеться создать и постоянно хранить файл истории создания папок.

#NoTrayIcon

;Способ 1
DirCreateNew_(@ScriptDir&'\test')
DirCreateNew_(@ScriptDir&'\test')
DirCreateNew_(@ScriptDir&'\test')
DirRemoveFirst_(@ScriptDir&'\test')
DirRemoveFirst_(@ScriptDir&'\test')
DirCreateNew_(@ScriptDir&'\test')
DirRemoveFirst_(@ScriptDir&'\test')

Exit

;Способ 2
Sleep(1100)
DirCreateNew_(@ScriptDir&'\test')
Sleep(1100)
DirCreateNew_(@ScriptDir&'\test')
Sleep(1100)
DirCreateNew_(@ScriptDir&'\test')
DirRemoveOld_(@ScriptDir)
DirRemoveOld_(@ScriptDir)
Sleep(1100)
DirCreateNew_(@ScriptDir&'\test')
DirRemoveOld_(@ScriptDir)

Exit

;Способ 3
Global $sLog = @ScriptDir&'\HistoryDirs.txt'
DirCreateNew_(@ScriptDir&'\test', $sLog)
DirCreateNew_(@ScriptDir&'\test', $sLog)
DirCreateNew_(@ScriptDir&'\test', $sLog)
DirRemoveLog_($sLog)
DirRemoveLog_($sLog)
DirCreateNew_(@ScriptDir&'\test', $sLog)
DirRemoveLog_($sLog)
UpdateLog_();Сохранить лог-историю в файл, который был указан в DirCreateNew_() и DirRemoveLog_()

Exit



;$_sDir = путь к папке для создания
;$_sLog = обновлять лог (путь к файлу) или нет (пустое значение)
Func DirCreateNew_($_sDir, $_sLog = '')
    Local $_iPrefix = 1
    While 1
        $_sDir = StringRegExpReplace($_sDir, '\A(.*?)(\h\([0-9]+\))?(\.[^\h]+)?\z', '$1 (' & $_iPrefix & ')$3')
        If Not FileExists($_sDir) Then ExitLoop
        $_iPrefix += 1
    WEnd
    DirCreate($_sDir)
    If @error Then Return SetError(@error, 0, $_sDir)
    If $_sLog <> '' Then UpdateLog_($_sLog, $_sDir)
    Return $_sDir
EndFunc

;найдет самую первую папку, указанную в $_sDir,подбирая порядковый номер и удалит ее.
Func DirRemoveFirst_($_sDir)
    Local $_iPrefix = 1
    While 1
        $_sDir = StringRegExpReplace($_sDir, '\A(.*?)(\h\([0-9]+\))?(\.[^\h]+)?\z', '$1 (' & $_iPrefix & ')$3')
        If FileExists($_sDir) Then ExitLoop
        $_iPrefix += 1
    WEnd
    DirRemove($_sDir, 1)
    Return $_sDir
EndFunc

;найдет в папке, указанной в $_sDir, самую старою папку по дате модификации и удалит ее.
Func DirRemoveOld_($_sDir)
    Local $_iTmp, $_sResult, $_iTime = 99999999999999
    Local $_sFile, $_hList = FileFindFirstFile($_sDir&'\*.*')
    While 1
        $_sFile = FileFindNextFile($_hList)
        If @error Then
            ExitLoop
        EndIf
        If @extended Then
            $_iTmp = FileGetTime ($_sDir&'\'&$_sFile, 0, 1)
            If $_iTmp < $_iTime Then
                $_iTime = $_iTmp
                $_sResult = $_sFile
            EndIf
        EndIf
    WEnd
    If $_sResult <> '' Then
        DirRemove($_sDir &'\'& $_sResult, 1)
        Return SetError(@error, 0, $_sResult)
    EndIf
    Return SetError(1)
EndFunc

;управляет логом
;$_sLog = имя файла истории который нужно открыть.
;               если пустая строка то, сохранит данные уже открытого файла истории.
;$_sDir = имя папки которое нужно добавить в историю.
;              если пустая строка то, удалит с диска папку, которая находится в верху списка истории.
Func UpdateLog_($_sLog = '', $_sDir = '')
    Local Static $_sFile = '', $_sList = ''
    If $_sLog <> $_sFile Then
        If $_sFile <> '' Then
            FileDelete($_sFile)
            FileWrite($_sFile, $_sList)
            $_sFile = ''
            $_sList = ''
        EndIf
        If $_sLog <> '' Then
            $_sList = FileRead($_sLog)
            $_sFile = $_sLog
        EndIf
    EndIf
    If $_sDir <> '' Then
        $_sList &= $_sDir &@CRLF
    Else
        $_sList = StringRegExp($_sList, '(?imsx)\v*([^\v]*)(.*)', 3)
        Local $_sTmp = $_sList[0]
        $_sList = $_sList[1]
        Return $_sTmp
    EndIf
EndFunc

Func DirRemoveLog_($_sLog)
    Local $_sDir = UpdateLog_($_sLog)
    If $_sDir <> '' Then
        DirRemove($_sDir, 1)
    EndIf
EndFunc
Спасибо, на днях я это обмозгую варианты 2 и 3 для меня пока еще дремучий лес но разобрав пример я хоть смогу понять логику создания скрипта
Сообщение автоматически объединено:

возможно ли создать папку по аналогии с @MDAY @MON @YEAR только с именем дня недели (понедельник, вторник и т.д.) это бы в принципе упростило задачу при копировании с заменой
 
Последнее редактирование:

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 610
Репутация
2 438
возможно ли создать папку по аналогии с @MDAY @MON @YEAR только с именем дня недели
Код:
#include <Date.au3>

DirCreate('C:\' & _DateDayOfWeekEx(@YEAR, @MON, @MDAY))

Func _DateDayOfWeekEx($iYear, $iMonth, $iDay, $iShort = 0)
    Local $iDayOfWeek = _DateToDayOfWeek($iYear, $iMonth, $iDay)
   
    If @error Then
        Return SetError(1, 0, '')
    EndIf
   
    If $iShort > 1 Or $iShort < 0 Then
        $iShort = 0
    EndIf
   
    Local $aDayOfWeek[8][2] = [[7], [0x0030, 0x0037], [0x002A, 0x0031], [0x002B, 0x0032], [0x002C, 0x0033], [0x002D, 0x0034], [0x002E, 0x0035], [0x002F, 0x0036]]
    Local $aRet = DllCall('kernel32.dll', 'int', 'GetLocaleInfoW', 'dword', 0x0800, 'dword', $aDayOfWeek[$iDayOfWeek][$iShort], 'wstr', '', 'int', 80)
   
    If @error Or Not $aRet[0] Then
        Return SetError(-1, 0, '')
    EndIf
   
    Return $aRet[3]
EndFunc
 
Автор
D

DmitryT

Новичок
Сообщения
8
Репутация
0
Код:
#include <Date.au3>

DirCreate('C:\' & _DateDayOfWeekEx(@YEAR, @MON, @MDAY))

Func _DateDayOfWeekEx($iYear, $iMonth, $iDay, $iShort = 0)
    Local $iDayOfWeek = _DateToDayOfWeek($iYear, $iMonth, $iDay)
  
    If @error Then
        Return SetError(1, 0, '')
    EndIf
  
    If $iShort > 1 Or $iShort < 0 Then
        $iShort = 0
    EndIf
  
    Local $aDayOfWeek[8][2] = [[7], [0x0030, 0x0037], [0x002A, 0x0031], [0x002B, 0x0032], [0x002C, 0x0033], [0x002D, 0x0034], [0x002E, 0x0035], [0x002F, 0x0036]]
    Local $aRet = DllCall('kernel32.dll', 'int', 'GetLocaleInfoW', 'dword', 0x0800, 'dword', $aDayOfWeek[$iDayOfWeek][$iShort], 'wstr', '', 'int', 80)
  
    If @error Or Not $aRet[0] Then
        Return SetError(-1, 0, '')
    EndIf
  
    Return $aRet[3]
EndFunc
Еще раз спасибо, дали очень много пищи для раздумий
 

IMStrelcov

CTPEJIbLLOB
Сообщения
176
Репутация
31
вот еще как вариант:
Код:
#include <Date.au3>


$sPath = @ScriptDir;папка где находятся создаваемые и удаляемые подпапки

While Sleep(1000)
    DirRemove_($sPath, 10, 's');удалить подпапки старше 10-ти секунд.
    $sDir = DirCreate_($sPath)
    ;$sDir = полный путь к новой созданной подпаке
WEnd

;создает подпапку с новым именем, порядковым номером, в указанной папке.
;$_sPath = папка в которой будет создана подпапка.
;возращает полный путь к созданной подпапке.
Func DirCreate_($_sPath)
    Local Static $_iDir = 1
    While 1
        If Not FileExists($_sPath & '\' & $_iDir) Then ExitLoop
        $_iDir += 1
    WEnd
    $_sPath &= '\' & $_iDir
    DirCreate($_sPath)
    If @error Then Return SetError(@error, 0, $_sPath)
    Return $_sPath
EndFunc

;удаляет все подпапки и их содержимое, в указанной папке, которые старше указанного интервала.
;$_sPath = папка где находятся удаляемые подпапки.
;$_iPeriod = интервал, через которое удалить подпапки.
;$_sType = тип интервала:
;        D = Интервал в днях
;        M = Интервал в месяцах
;        Y = Интервал в годах
;        w = Интервал в неделях
;        h = Интервал в часах
;        n = Интервал в минутах
;        s = Интервал в секундах
Func DirRemove_($_sPath, $_iPeriod, $_sType)
    Local $_sFile, $_hList = FileFindFirstFile($_sPath&'\*.*')
    While 1
        $_sFile = FileFindNextFile($_hList)
        If @error Then
            ExitLoop
        EndIf
        If @extended Then
            $_aFileTime = FileGetTime ($_sPath&'\'&$_sFile)
            If $_iPeriod <= _DateDiff($_sType, $_aFileTime[0]&'/'&$_aFileTime[1]&'/'&$_aFileTime[2]&' '&$_aFileTime[3]&':'&$_aFileTime[4]&':'&$_aFileTime[5], _NowCalc()) Then
                DirRemove($_sPath&'\'&$_sFile, 1)
                If @error Then Return SetError(1)
            EndIf
        EndIf
    WEnd
EndFunc
 
Верх