Программирование Файловые системы Библиотека FatFS: FILINFO Mon, October 14 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Библиотека FatFS: FILINFO Печать
Добавил(а) microsin   

FILINFO

Структура FILINFO содержит в себе информацию о файле, которую возвращают функции f_stat и f_readdir.

typedef struct {
    DWORD fsize;      /* Размер файла */
    WORD  fdate;      /* Дата последней модификации */
    WORD  ftime;      /* Время последней модификации */
    BYTE  fattrib;    /* Атрибуты */
    TCHAR fname[13];  /* Короткое имя файла SFN (в формате 8.3) */
#if _USE_LFN
    TCHAR* lfname;    /* Указатель на буфер длинного имени файла LFN */
    int   lfsize;     /* Размер буфера LFN в единицах TCHAR */
#endif
} FILINFO;

Поля структуры

fsize
Показывает размер файла в байтах. Для директорий это поле всегда равно 0.
fdate
Показывает либо дату последней модификации (для файла), либо дату создания (для директории).
bit15:9
Год, начиная с 1980 (0..127)
bit8:5
Месяц (1..12)
bit4:0
День (1..31)
ftime
Показывает либо время последней модификации (для файла), либо время создания (для директории).
bit15:11
Час (0..23)
bit10:5
Минуты (0..59)
bit4:0
Секунды / 2 (0..29)
fattrib
Показывает атрибуты файла/директории в комбинации по ИЛИ флагов AM_DIR, AM_RDO, AM_HID, AM_SYS and AM_ARC.
fname[]
Показывает имя файла/директории в формате 8.3, строка null-terminated (завершающаяся нулем). Всегда возвращается в верхнем регистре для не-LFN конфигураций (без длинных имен файлов), однако может быть возвращено в нижнем регистре, если используется конфигурация LFN (длинные имена).
lfname
Указатель на буфер имени LFN, для сохранения прочитанного имени LFN. Это поле должно быть обязательно инициализировано приложением перед началом использования этой структуры в вызовах функций. Поле отсутствует для не-LFN конфигураций. 
lfsize
Размер буфера LFN в единицах TCHAR. Это поле должно быть инициализировано приложением перед началом использования этой структуры в вызовах функций. Поле недоступно для не-LFN конфигураций.

Внимание: если используется длинные имена файлов (задано #define _USE_LFN 1), то поля lfname и lfsize обязательно должны быть инициализированы на валидный буфер в памяти, иначе поведение кода библиотеки FatFS будет непредсказуемым. Кроме того, для доступа к файлам даже при включенных длинных именах нужно использовать короткое имя файла (поле fname), так как если имя файла по размеру меньше 8.3, то длинное имя будет пустым (0 == strlen(lfname)).

[Ссылки]

1. FILINFO - оригинал статьи на английском языке.

 

Добавить комментарий


Защитный код
Обновить

Top of Page