Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Аватара для Creat0R

Must AutoIt


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

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


Переделал немного функцию для удаления файлов из подкаталогов, чтобы она ещё возвращала значения...
если все файлы были найдены, то возвращается сообщение о том что всё прошло успешно, если какого-то файла не удалось удалить, то возвращается список тех файлов которых не удалось удалить - если каталоги небыли найдены, или сам путь не сущестсвует, то также возвращается сообщение об ошибке.

P.S.

Хотелось бы узнать, как можно построить функцию так, чтобы возвращалось значение в массиве (через _ArrayAdd полагаю), я пробовал сделать, но у меня почему то возвращается только первое значение (из $Results[1]) - если кто-то может показать как правильно строить массив на примере с этой функцией (для удаления), то буду очень признателен.

Код: Выделить весь код
$Results = _DeleteFileInFolders($FileName, $Path)

MsgBox(64, "Results", "Results of deleting:" & @CR & $Results)

Func _DeleteFileInFolders($FileName, $Path)
    Local $ErrDelList
    If Not FileExists($Path) Then Return "The destination folder <" & $Path & "> was not found"
    $ErrDelete1 = FileDelete($Path & "\" & $FileName)
    $DirsList = _DirListToArray($Path)
    If IsArray($DirsList) Then
        If $DirsList[0] = 0 And $ErrDelete1 = 0 Then Return "There is no file <" & $FileName & "> in the destination folders, and  in there is no folders in the destination path <" & $Path & ">"
        For $i = 1 to $DirsList[0]
            $ErrDelete2 = FileDelete($DirsList[$i] & "\" & $FileName)
            If $ErrDelete2 = 0 And FileExists($DirsList[$i] & "\" & $FileName) Then
                If $ErrDelete1 = 0 And FileExists($Path & "\" & $FileName) And StringInStr($ErrDelList, $Path & "\" & $FileName) = 0 Then $ErrDelList = $ErrDelList & @CR & "Can not delete the file <" & $Path & "\" & $FileName & ">"
                $ErrDelList = $ErrDelList & @CR & "Can not delete the file <" & $DirsList[$i] & "\" & $FileName & ">"
            ElseIf $ErrDelete2 = 0 And Not FileExists($DirsList[$i] & "\" & $FileName) Then
                If $ErrDelete1 = 0 And Not FileExists($Path & "\" & $FileName) And StringInStr($ErrDelList, $Path & "\" & $FileName) = 0 Then $ErrDelList = $ErrDelList & @CR & "File <" & $Path & "\" & $FileName & "> not found"
                $ErrDelList = $ErrDelList & @CR & "File <" & $DirsList[$i] & "\" & $FileName & "> not found"
            EndIf
        Next
        If $ErrDelList <> "" Then
            Return $ErrDelList
        ElseIf $ErrDelete1 = 0 Then
            Return "There is no file <" & $FileName & "> in the destination path <" & $Path & ">"
        Else
            Return "All files in the destination folder (and in his subfolders) was secceseful deleted!"
        EndIf
    Else
        Return ""
    EndIf
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 02:50, 19-12-2006 | #61