PureBasic

ExamineDirectory()

Синтаксис

Result = ExamineDirectory(#Directory , DirectoryName$ , Pattern$)

Описание


Создаёт перечисление записей указанного каталога (директории), согласно шаблону Pattern$. Чтобы пошагово перебрать найденные записи, воспользуйтесь функцией NextDirectoryEntry().

Параметры

#Directory Номер для идентификации нового перечисления записей каталога. В качестве этого параметра можно использовать значение #PB_Any, чтобы сгенерировать этот Номер автоматически.
DirectoryName$ Имя каталога (включая путь), для которого создаётся перечисление записей.
Pattern$ Шаблон, указывающий какие файлы и каталоги включать в перечисление записей.
Например: значение 'Pattern$', равное "*.*" или "" включит в перечисление все файлы (и подкаталоги) данного каталога. Значение 'Pattern$' равное "*.exe" включит только файлы .exe (и подкаталоги, заканчивающиеся на .exe если такие есть).

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

Возвращает не нулевое значение, если перечисление записей для данного каталога было создано успешно, в противном случае 0. Если в качестве параметра #Directory использовалось значение #PB_Any, то в случае успеха будет возвращен сгенерированный Номер.

Комментарии

Подробную информацию о текущей записи используемого перечисления можно получить с помощью функции:

DirectoryEntryType() - тип текущей записи (файл или каталог)
DirectoryEntryName() - имя текущей записи
DirectoryEntrySize() - размер текущей записи (если это файл, для каталога всегда 0)
DirectoryEntryDate() - требуемая дата текущей записи
DirectoryEntryAttributes() - атрибуты текущей записи

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

Пример

; Пример создаёт перечисление всех файлов и папок домашнего каталога.
Directory$ = GetHomeDirectory() ; Получает путь
If ExamineDirectory(0, Directory$, "*.*") ; Создаёт перечисление записей каталога
    While NextDirectoryEntry(0) ; Пока найден элемент файловой системы
        If DirectoryEntryType(0) = #PB_DirectoryEntry_File ; Если тип элемента является файлом, то
            Type$ = "[Файл] "
            Size$ = " (Размер: " + DirectoryEntrySize(0) + ")" ; Получает размер
        Else                                                  ; Иначе
            Type$ = "[Каталог] "
            Size$ = "" ; Для каталога размер напрямую не определяется.
        EndIf

        Debug Type$ + DirectoryEntryName(0) + Size$ ; Вывод в отладчик элемента с добавлением типа и размера
    Wend
    FinishDirectory(0) ; Освобождает ресурсы поиска
EndIf

См. также

FinishDirectory(), NextDirectoryEntry(), DirectoryEntryType(), DirectoryEntryName(), DirectoryEntrySize(), DirectoryEntryAttributes(), DirectoryEntryDate().

Поддерживаемые OS

Все

<- DirectoryEntryType() - Оглавление FileSystem - FileSize()->