w32api - Справочник по Windows API
Найти:
На:





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

Для задания дополнительных атрибутов при поиске, воспользуйтесь функцией FindFirstFileEx.

HANDLE FindFirstFile(
  LPCTSTR lpFileName,
  LPWIN32_FIND_DATA lpFindFileData
);
Параметры:

lpFileName Адрес нульзаканчивающейся строки, которая определяет действительную директорию или путь, и имя файла, которое может содержать расширяемые символы, такие как * и ?.

Если строки заканчивается расширяемым символом, периодом (.), или именем директории, пользователь должен иметь доступ к корневому пути и ко всем поддиректориям пути.

В ANSI-версия этой функции, имя ограничено в MAX_PATH символов. Для увеличения этого предела до 32,767 широких символов, вызывайте Unicode-версию функции, добавив к пути "\\?\".

Windows Me/98/95:  Эта строка не должна превышать MAX_PATH символов.
lpFindFileData Адрес структуры WIN32_FIND_DATA, которая получает информацию о найденом файле или поддиректории.

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

Если функция успешна, возвращается дескриптор поиска, используемый в последующих вызовах FindNextFile или FindClose.

При ошибке возвращается INVALID_HANDLE_VALUE. Для получения дополнительной информации об ошибке, вызывайте GetLastError.

Замечания:

Функция FindFirstFile открывает десриптор поиска и возвращает информацию о первом файле, с именем, которое отвечает заданным условиям. Следующий список описывает некоторые особенности поиска:

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

Учтите: в некоторых случаях, информация файловых атрибутов на файловых системах NTFS может не быть верной во время вызова функции FindFirstFile. Для получения верных файловых атрибутов файловой системы NTFS, вызовите GetFileInformationByHandle.

Вы не можете использовать коренные дирекории в строке lpFileName для FindFirstFile – с или без завершающим обратным слешем. Если вы хотите просмотреть файлы или получить атрибуты файловой директории, делайте следующее:

  • Для просмотра файлов в корневой директории вы можете воспользоватся "C:\*" и шагом сквозь директорию используя FindNextFile.
  • Для получения атрибутов корневой директории, воспользуйтесь GetFileAttributes.

Учтите: начиная строку с "\\?\" не дает дуступа к корневой директории.

Для проверки диркетории, которая не является корнекой, используйте путь к этой директории без завершающего обратного слеша. Например, аргумент "C:\windows" возвращает информацию о директории "C:\windows", но не о директории или файле в "C:\windows". Попытка открытия поиска с завершающим обратным слешем, всегда будет неудачной.

Знайте, что кто-то может создать или удалить файл с этим именем между временем, пока вы запрашиваете результат, и временем, пока вы что-то делаете с информацией. Воспользуйтесь функцией CreateFile с CREATE_NEW (ошибка, если файл существует), или OPEN_EXISTING (ошибка, если файл не существует).

Если путь указывает на символьную ссылку, буфер WIN32_FIND_FILE содержит информацию о символической ссылке, но не о ее цели.

Смотрите также:



Hosted by uCoz