Функция FindFirstFile
HANDLE FindFirstFile(
LPCTSTR lpFileName, // Имя образца для поиска
LPWIN32_FIND_DATA lpFindFileData // Указатель на структуру с результатом
);
Windows 95: Образец для поиска может содержать символы (* и ?). Строка должна быть с нулевым завершителем и по длине не превосходить MAX_PATH
символов.
Windows NT: Ограничение на длину строки снимается, т.к. есть возможность использовать широкую версию (W) функции FindFirstFile. Символы "\\?\" говорят о возможности использования пути длиннее MAX_PATH. Она также работает с именами, заданными в UNICODE (UNC). Символы "\\?\" игнорируются как часть каталога. Например, путь "\\?\C:\myworld\private" интерпретируется как "C:\myworld\private", а "\\?\UNC\bill_g_1\hotstuff\coolapps"
интерпретируется как
"\\bill_g_1\hotstuff\coolapps".
LpFindFileData - Структура 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 ];
} WIN32_FIND_DATA;
dwFileAttributes - Значение атрибутов, определяется битами:
FILE_ATTRIBUTE_ARCHIVE, FILE_ATTRIBUTE_COMPRESSED,
FILE_ATTRIBUTE_DIRECTORY , FILE_ATTRIBUTE_HIDDEN
FILE_ATTRIBUTE_NORMAL
FILE_ATTRIBUTE_OFFLINE- данные из фала сразу же недоступны, они могут быть пока в памяти.
FILE_ATTRIBUTE_READONLY,
FILE_ATTRIBUTE_SYSTEM файл является частью ОС или используется только ею.
FILE_ATTRIBUTE_TEMPORARY- временный файл-используется для временного хранения. Приложение должно писать в него, только если это абсолютно необходимо . Большинство данных остается в памяти без сброса их на диск, т.к. файл очень скоро удаляется.