Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Функция FindFirstFile



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

  HANDLE FindFirstFile( LPCTSTR lpFileName, // Строка, содержащая путь для поиска файлов. LPWIN32_FIND_DATA lpFindFileData // Информация о найденном файле );

Теперь рассмотрим параметры подробней:

· lpFileName — строка, содержащая путь для поиска файла. Эта строка может указывать на конкретный файл типа ‘c:\filename.txt’ или может хранить шаблон ‘c:\*.*’. Если указывать шаблон, то это даёт возможность перечислить все файлы удовлетворяющие шаблону.

· lpFindFileData — структура WIN32_FIND_DATA, в которую будут записаны сведения о найденном файле.

Рассмотрим структуру WIN32_FIND_DATA немного подробнее:

  typedef struct _WIN32_FIND_DATA { DWORD dwFileAttributes; // Атрибуты файла FILETIME ftCreationTime; // Время создания FILETIME ftLastAccessTime; //Время последнего доступа FILETIME ftLastWriteTime; //Время последней записи в файл DWORD nFileSizeHigh; //Верхний байт размера файла DWORD nFileSizeLow; //Нижний байт размера файла DWORD dwReserved0; //Зарезервировано DWORD dwReserved1; //Зарезервировано TCHAR cFileName[ MAX_PATH ]; //Имя файла TCHAR cAlternateFileName[ 14 ]; //Имя файла для отображения в DOS (8:3) } WIN32_FIND_DATA;

Атрибутами файла может быть комбинация из флагов:

· FILE_ATTRIBUTE_ARCHIVE — архивный

· FILE_ATTRIBUTE_COMPRESSED — сжатый

· FILE_ATTRIBUTE_HIDDEN — скрытый

· FILE_ATTRIBUTE_NORMAL — нормальный

· FILE_ATTRIBUTE_OFFLINE — данные файла недоступны

· FILE_ATTRIBUTE_READONLY — только для чтения

· FILE_ATTRIBUTE_SYSTEM — системный

· FILE_ATTRIBUTE_TEMPORARY — временный

Размер файла разложен на два байта. Чтоб получить полный размер файла нужно выполнить действие (FInfo.nFileSizeHigh * MAXDWORD) + FInfo.nFileSizeLow. Это не самый эффективный (эффективнее сдвигать), но самый понятный способ.

Теперь рассмотрим рабочий пример:

  { WIN32_FIND_DATA sss; HANDLE f; f = FindFirstFile("C:\*.*", &sss); ... FindClose(f); }




Дата публикования: 2015-10-09; Прочитано: 688 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...