Программирование на Ассемблере


         

14.2.4.1 Функция FindFirstFile - часть 2


ftCreationTime, ftLastAccessTime, ftLastWriteTime – временные параметры для файла задаются в формате Coordinated Universal Time (UTC). Эта функция записывает 0 в параметры времени, если файловая система не поддерживает эти параметры. Для преобразования этого формата в местное время используется функция FileTimeToLocalFileTime , а для преобразования местного времени в системное используется функция FileTimeToSystemTime . Структура SYSTEMTIME содержит отдельные поля для месяца, дня, года, дня недели, часов, минут, секунд и миллисекунд.

Структура FILETIME :

typedef struct _FILETIME {

    DWORD dwLowDateTime;

    DWORD dwHighDateTime;

} FILETIME;

Время создания файла задается как 64 битное число и определяет количество наносекунд, которые прошли с 01.01.1601 года. Для преобразования файлового времени с учетом часового пояса используется функция FileTimeToLocalTime:

BOOL FileTimeToLocalFileTime(  CONST FILETIME *lpFileTime  LPFILETIME lpLocalFileTime   );

Для преобразования времени в нормальную форму используется функция FileTimeToSystemTime:

BOOL FileTimeToSystemTime(  CONST FILETIME *lpFileTime  LPSYSTEMTIME lpSystemTime   );

lpFileTime – адрес начала структуры типа FILETIME  (исходное данное). Функция FileTimeToSystemTime работает только со значениями FILETIME, которые меньше чем 0x8000000000000000.

 LpSystemTime – адрес структуры SYSTEMTIME (результат).

Структура SYSTEMTIME

содержит:

typedef struct _SYSTEMTIME {     WORD wYear; // Год    WORD wMonth; // Месяц    WORD wDayOfWeek; // День недели    WORD wDay; // День    WORD wHour; // Час    WORD wMinute; // Минуты    WORD wSecond; // Секунды    WORD wMilliseconds; // Миллисекунды} SYSTEMTIME, *PSYSTEMTIME;

nFileSizeHigh, nFileSizeLow –размер файла

– 64 бита – в байтах

cFileName строка с нулевым завершителем.

cAlternateFileName – строка с нулевым завершителем, которая является альтернативным имененм файла в формате 8.3, т.е., если файл имеет длинное имя, то оно появляется в поле cFileName,

а его псевдоним в формате 8.3 в поле cAlternateFileName. Если используется файл с коротким именем, поле cAlternateFileName

- пустое. Можно использовать функцию GetShortPathName

для нахождения короткого имени для данного файла.

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

Успех - дескриптор, который используется функциями FindNextFile или  FindClose.

Ошибка - INVALID_HANDLE_VALUE.

Функцию можно использовать для поиска по именам, поиск по атрибутам организовать нельзя.




Содержание  Назад  Вперед