Функция FileFindNextFile

         Описание функции


FileFindNextFile

Возвращает следующее имя файла, определяемое дескриптором поиска.

FileFindNextFile ( search )

Параметры

search Дескриптор поиска, возвращённый функцией FileFindFirstFile().

Возвращаемое значение

Успех:Возвращает имя очередного файла / папки, @extended принимает значения:
0 = файл
1 = папка
Ошибка:Устанавливает @error равным 1, если больше нет файлов / папок, соответствующих поиску.

Примечания

Механизм работы поиска следующий: созданный дескриптор поиска хранит в себе путь, маску, текущую позицию поиска. На основе этой информации FileFindNextFile() возвращает следующий файл, сохраняя в дескриптор поиска текущую позицию, от которой продолжится следующий поиск. Вы можете открыть несколько дескрипторов поиска и они не будут влиять друг на друга.

После окончания работы с функциями FileFind... необходимо вызвать FileClose() для освобождения ресурсов, выделенных дескриптору поиска.

Из-за использования базовой функции Windows API - FindFirstFile, происходит поиск длинных и коротких имён файлов. Если вы получаете непредвиденные результаты, то убедитесь, что это не короткое имя файла.

См. также

FileClose, FileFindFirstFile

Пример

; Скрипт показывает имена всех файлов и каталогов в указанной директории.
$sPath = @HomeDrive
$hSearch = FileFindFirstFile($sPath & '\*.*') ; возвращает дескриптор поиска, определяющий путь и маску

; Проверка, является ли поиск успешным
If $hSearch = -1 Then
    MsgBox(4096, "Ошибка", "Ни один из файлов или каталогов не соответствует маске поиска")
    Exit
EndIf

While 1
    $sFile = FileFindNextFile($hSearch) ; возвращает имя следующего файла, начиная от первого до последнего
    If @error Then ExitLoop
    If @extended Then
        $sType = 'Каталог: '
    Else
        $sType = 'Файл: '
    EndIf

    $iAnswer = MsgBox(1, 'Следующий элемент', $sType & @TAB & $sFile & @LF & 'Путь: ' & @TAB & $sPath & '\' & $sFile)
    If $iAnswer = 2 Then ExitLoop
WEnd

; Закрывает дескриптор поиска
FileClose($hSearch)