@UserProfileDir&'\Cookies\*.txt'.
@UserProfileDir&'\AppData\Roaming\Microsoft\Windows\Cookies'
#Include <FileOperations.au3>
$array = _FO_FileSearch('C:\Users\Admin\Cookies','*.txt')
For $i = 1 To $array[0]
FileSetAttrib($array[$i],'-RSH')
FileDelete($array[$i])
Next
потому чтоВыдал пустую форму.
_FO_FileSearch
Cookies
ConsoleWrite(RegRead('HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', 'Cookies') & @LF)
#Include <FileOperations.au3>
_deldub_arch()
Func _deldub_arch()
Local $sPath, $aProgiFull, $a
$sPath = 'd:\TC\Update\'
$aProgiFull = _FO_FileSearch($sPath, '*,exe|*.rar|*.zip', True, 0, 1, 1, 1, '', '', '')
Dim $aTableProgi[UBound($aProgiFull)][3]
For $i=1 To $aProgiFull[0]
$aTableProgi[$i][0] = StringRegExpReplace ($aProgiFull[$i],'(?m)(^.*)\\(.*)$','\2')
$aTableProgi[$i][1] = StringRegExpReplace ($aTableProgi[$i][0],'(.+)\_([\d+\.]+)(\_.+)?(\.zip|\.rar)','\1')
$aTableProgi[$i][2] = StringRegExpReplace ($aTableProgi[$i][0],'(.+)\_([\d+\.]+)(\_.+)?(\.zip|\.rar)','\2')
Next
For $i=1 To UBound($aTableProgi)
If $i = UBound($aTableProgi) - 1 Then ExitLoop
If $aTableProgi[$i][1] = $aTableProgi[$i+1][1] Then
MsgBox(4096,'Дубликаты', 'Найдены дубликаты в строках '&$i &' и '&$i+1 )
If $aTableProgi[$i][2] > $aTableProgi[$i+1][2] Then
$a &= $sPath&$aTableProgi[$i+1][0]&'|'
Else
$a &= $sPath&$aTableProgi[$i][0]&'|'
EndIf
EndIf
Next
$a = StringTrimRight($a, 1)
FileDelete ($a)
EndFunc
;Сам никогда ну удалял несколько файлов за один заход , го разве функция "FileDelete" поддерживает в качестве параметра пути к нескольким файлам с разделителем "|" ?
;Не проще ли удалять эти файлы сразу после того , как их нашли ?
If $aTableProgi[$i][1] = $aTableProgi[$i + 1][1] Then
MsgBox(4096, 'Дубликаты', 'Найдены дубликаты в строках ' & $i & ' и ' & $i + 1)
If $aTableProgi[$i][2] > $aTableProgi[$i + 1][2] Then
FileDelete($sPath & $aTableProgi[$i + 1][0])
Else
FileDelete($sPath & $aTableProgi[$i][0])
EndIf
EndIf
Изначально так и было, это потом уже выносил в отдельную переменную.;Не проще ли удалять эти файлы сразу после того , как их нашли ?
If $aTableProgi[$i][1] = $aTableProgi[$i + 1][1] Then
MsgBox(4096, 'Дубликаты', 'Найдены дубликаты в строках ' & $i & ' и ' & $i + 1)
If $aTableProgi[$i][2] > $aTableProgi[$i + 1][2] Then
$aTableProgi[$i+1][0] = StringTrimLeft ($aTableProgi[$i+1][0], 1)
FileDelete($sPath & $aTableProgi[$i + 1][0])
Else
$aTableProgi[$i][0] = StringTrimLeft ($aTableProgi[$i][0], 1)
FileDelete($sPath & $aTableProgi[$i][0])
EndIf