Библиотека FatFS: f_stat |
Добавил(а) microsin |
f_stat Функция f_stat получает текущее состояние (статус) файла. FRESULT f_stat ( const TCHAR* FileName, /* Указатель на имя файла или имя директории */ FILINFO* FileInfo /* Указатель на структуру FILINFO */ ); Параметры
Возвращаемые значения FR_OK, FR_DISK_ERR, FR_INT_ERR, FR_NOT_READY, FR_NO_FILE, FR_NO_PATH, FR_INVALID_NAME, FR_INVALID_DRIVE, FR_NOT_ENABLED, FR_NO_FILESYSTEM, FR_TIMEOUT, FR_NOT_ENOUGH_CORE Описание Функция f_stat позволяет получить информацию о файле или директории. Для подробной информации обратитесь к описанию полей структуры FILINFO, и к описанию функции f_readdir. Функция f_stat не поддерживается на уровне минимизации >= 1. Когда включена опция LFN (разрешены длинные имена, в файле ff.h задано #define _USE_LFN 1), поля lfname и lfsize в FileInfo должны быть предварительно инициализированы до вызова f_stat. Поле lfname является указателем на буфер, в котором будет сохранена строка с длинным именем файла. Поле lfsize содержит размер для этого буфера строки, указанный в единицах TCHAR. Этот указатель должен указывать на валидный буфер в RAM, иначе все функции, которые используют переменную FILINFO (например f_stat) могут привести к непрогнозированному поведению программы (обычно Data Abort или зависание). Кроме того, для доступа к файлам даже при включенных длинных именах нужно использовать короткое имя файла (поле fname), так как если имя файла по размеру меньше 8.3, то длинное имя будет пустым (0 == strlen(lfname)). Для дополнительной информации см. также описание функции f_readdir. Пример получения атрибутов файла: u8 GetFileAttributes (char* filename) { u8 attribute = 0; FILINFO FileInfo; #if _USE_LFN static char lfn[_MAX_LFN + 1]; FileInfo.lfname = lfn; FileInfo.lfsize = sizeof(lfn); #endif if (FR_OK == f_stat(filename, &FileInfo)) attribute = FileInfo.fattrib; return attribute; } См. также [Ссылки] 1. f_stat - получение текущего состояния файла или директории (оригинал статьи на английском языке). |