| Библиотека FatFS: f_getfree |
|
| Добавил(а) microsin |
|
f_getfree Функция f_getfree получает количество свободных кластеров. FRESULT f_getfree ( const TCHAR* Path, /* Логический номер драйва (диска) */ DWORD* Clusters, /* Указатель на переменную для сохранения количества свободных кластеров */ FATFS** FileSystemObject /* Указатель на объект файловой системы */ ); Параметры
Возвращаемые значения FR_OK, FR_DISK_ERR, FR_INT_ERR, FR_NOT_READY, FR_INVALID_DRIVE, FR_NOT_ENABLED, FR_NO_FILESYSTEM, FR_TIMEOUT Описание Функция f_getfree получает количество свободных кластеров на диске. Поле csize в объекте файловой системы отражает количество секторов в кластере, поэтому свободное пространство в секторах может быть вычислено перемножением csize на переменную Clusters. Когда структура FSInfo на томе FAT32 находится не в синхронизации с кешем, эта функция может вернуть некорректное количество свободных кластеров. Краткая информация (QuickInfo) Функция доступна, когда _FS_READONLY == 0 и _FS_MINIMIZE == 0. Пример кода FATFS *fs;
DWORD fre_clust, fre_sect, tot_sect;
/* Получение информации о томе и количество свободных кластеров на драйве 1 */
res = f_getfree("1:", &fre_clust, &fs);
if (res) die(res);
/* Получение общего количества секторов и свободного количества секторов */
tot_sect = (fs->n_fatent - 2) * fs->csize;
fre_sect = fre_clust * fs->csize;
/* Вывод на печать свободного места в килобайтах (предполагается, что в секторе 512 байт) */
printf("%lu KB total drive space.\n"
"%lu KB available.\n",
fre_sect / 2, tot_sect / 2);
См. также [Ссылки] 1. f_getfree - получение количества свободных секторов (оригинал стратьи на английском языке). |