Библиотека 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 - оригинал статьи на английском языке. |