The f_getfree function gets number of the free clusters.
FRESULT f_getfree ( const char* Path, /* Root directory of the drive */ DWORD* Clusters, /* Pointer to the variable to store number of free clusters */ FATFS** FileSystemObject /* Pointer to pointer to file system object */ );
The f_getfree function gets number of free clusters on the drive. The member csize in the file system object is refreting number of sectors per cluster, so that the free space in unit of sector can be calcurated with this. When _USE_FSINFO option is enabled, this function might return an inaccurate free cluster count on FAT32 volume. When it is disabled, this function will take a time on FAT32 volume.
This function is not supported in read-only configuration and minimization level of >= 1.
FATFS *fs; DWORD clust; // Get free clusters res = f_getfree("", &clust, &fs); if (res) die(res); // Get free space printf("%lu KB total disk space.\n" "%lu KB available on the disk.\n", (DWORD)(fs->max_clust - 2) * fs->csize / 2, clust * fs->csize / 2);