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

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

Аватара для Maza Faka

Ветеран


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

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


Почему функция возвращает переменную $count равную нулю, хотя файлы были найдены и удалены? Сначала я подумал, что это происходит если существуют подкаталоги, так, как при нахождении каталога функция вызывает саму себя и соответсвенно снова происходит декларирование переменной: Local $count = 0, но удалив подкаталоги, я обнаружил, что проблема не исчезла, функция всё так же возвращает переменную $count равной нулю. Я понимаю, что это даже не проблема, так как переменную можно обьявить вне функции и тогда счётчик будет приращиваться, но всё же интересно, почему так происходит?

Код: Выделить весь код
Dim $delFile[3] = [2, "soccer5.bmp", "soccer9.bmp"], $path[3] = [2, "c:\test", "c:\1"]

For $p = 1 To $path[0]
    For $f = 1 To $delFile[0]
        $Del = DeleteFile($path[$p], $delFile[$f])
    Next
Next
MsgBox(64, "Result", $Del)

Func DeleteFile($path, $delfile)
    Local $count = 0
    $search = FileFindFirstFile($path & "\*.*")
    While 1
        $file = FileFindNextFile($search)
        If @error Then ExitLoop
            $Full_file = $path & "\" & $file
            If FileGetAttrib($Full_file) = "D" Then
                DeleteFile($Full_file, $delfile)
            ElseIf $file = $delFile Then
                If FileDelete($Full_file) Then $count += 1
            EndIf
        WEnd
        FileClose($search)
        Return $count & " files deleted"
    EndFunc

Отправлено: 16:53, 20-08-2007 | #337