Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Pozia:
ну вот и все »
признаюсь, лобовое решение короче (ниже), просто хотелось немного оптимизировать по скорости выполнения и поиграть со встроенными функциями AutoIT, а самым быстрым удалением все же остается "RD"
Код: Выделить весь код
_DirClear(@HomeDrive)

Func _DirClear($sDIR)
    Local $hSearch, $sFile, $sPath
    $sDIR = StringRegExpReplace($sDIR, "\\+$", "")
    If StringInStr(FileGetAttrib($sDIR), "D")=0 Then Return SetError(1, 0, False)

    $hSearch = FileFindFirstFile($sDIR & "\*")
    If $hSearch = -1 Then Return SetError(2, 0, False)
    While 1
        $sFile = FileFindNextFile($hSearch)
        If @error Then ExitLoop
        $sPath = $sDIR & "\" & $sFile
        FileSetAttrib($sPath, "-RSH")
        If StringInStr(FileGetAttrib($sPath), "D") Then
            _DirClear($sPath)
            DirRemove($sPath)
        Else
            FileDelete($sPath)
        EndIf
    WEnd
    FileClose($hSearch)

    Return SetError(0, 0, True)
EndFunc

Отправлено: 16:59, 09-03-2009 | #33