Библиотека 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 - получение количества свободных секторов (оригинал стратьи на английском языке). |