$sPath = @ProgramFilesDir & '\Videodeluxe'
$sMask = '_msi_keyfile*'
$iDel = 0
$iNoDel = 0
$iStart = TimerInit()
$aSearch = _FileSearch($sPath, $sMask, 1)
If $aSearch[0] Then
For $i = 1 To $aSearch[0]
If FileDelete($aSearch[$i]) Then
$iDel += 1
Else
FileSetAttrib($aSearch[$i], '-RASHOT')
If FileDelete($aSearch[$i]) Then
$iDel += 1
Else
$iNoDel += 1
EndIf
EndIf
Next
$sTime = StringFormat('%.2f сек', TimerDiff($iStart) / 1000)
MsgBox(64, 'Info', 'Найдено файлов ' & $sMask & ' всего: ' & $aSearch[0] & @CRLF & _
'Удалено файлов: ' & $iDel & @CRLF & 'Не удалено файлов: ' & $iNoDel & @CRLF & _
'Затрачено времени: ' & $sTime)
Else
$sTime = StringFormat('%.2f сек', TimerDiff($iStart) / 1000)
MsgBox(16, 'Info', 'Не найдено ни одного файла ' & $sMask & @CRLF & _
'Затрачено времени: ' & $sTime)
EndIf
;$iFlag = 0 - Файлы и папки (по умолчанию)
;$iFlag = 1 - Только файлы
;$iFlag = 2 - Только папки
Func _FileSearch($sPath, $sFileMask, $iFlag = 0)
Local $sOutBin, $sOut, $aOut, $sRead, $hDir, $sAttrib
Switch $iFlag
Case 1
$sAttrib = ' /A-D'
Case 2
$sAttrib = ' /AD'
Case Else
$sAttrib = ' /A'
EndSwitch
$sOut = StringToBinary('0' & @CRLF, 2)
$aMasks = StringSplit($sFileMask, ';')
For $i = 1 To $aMasks[0]
$hDir = Run(@ComSpec & ' /U /C DIR "' & $sPath & '\' & $aMasks[$i] & '" /S /B' & $sAttrib, @SystemDir, @SW_HIDE, 6)
While 1
$sRead = StdoutRead($hDir, False, True)
If @error Then
ExitLoop
EndIf
If $sRead <> "" Then
$sOut &= $sRead
EndIf
WEnd
Next
$aOut = StringRegExp(BinaryToString($sOut, 2), '[^\r\n]+', 3)
If @error Then
Return SetError(1)
EndIf
$aOut[0] = UBound($aOut) - 1
Return $aOut
EndFunc ;==>_FileSearch