Функция FindFirstFile

Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, _
    lpFindFileData As WIN32_FIND_DATA) As Long

FindFirstFile ищет файл по его имени. Также может искать и подпапки (как разновидность имени файла).

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

В успешном случае возвращается поисковый описатель. В случае ошибки возвращается INVALID_HANDLE_VALUE (используйте GetLastError для получения кода ошибки).

Параметры

lpFileName
Имя файла для поиска. Может содержать такие символы, как * или ?
lpFindFileData
Структруа WIN32_FIND_DATA, получающая различную информацию о найденном файле или подпапке

Пример

' Ищем файлы, сооттветсвующие условию "C:\windows\*.ini"
Dim hsearch As Long  ' поисковый описатель
Dim findinfo As WIN32_FIND_DATA
Dim success As Long  ' если файл найде, то 1, если не найден, то 0
Dim buffer As String ' буфер, куда заносится имя файла
Dim lRet As Long  ' возвращаемое значение

' Начинаем поиск:
hsearch = FindFirstFile("C:\windows\*.ini", findinfo)
If hsearch = -1 Then  ' не найдено файлов по заданному условию
  Debug.Print "Файл(ы) не найден(ы)"
  End
End If

' Выводим имена найденных файлов
Do
 ' Извлекаем имя файла из буфера
  buffer = Left(findinfo.cFileName, InStr(findinfo.cFileName, vbNullChar) - 1)
  Debug.Print buffer
  
  ' Продолжаем поиск файлов
  success = FindNextFile(hsearch, findinfo)
Loop Until success = 0

' Закрываем поисковый дескриптор, т.к. больше файлов нет
lRet = FindClose(hsearch)

Смотри также

FindClose, FindNextFile

Категория

Файлы