fatfs文件系統讀取剩餘空間實例解析

一 前記

 文件系統讀取剩餘內存空間並顯示是一個常用的功能。這個函數是:

FRESULT f_getfree (const TCHAR* path, DWORD* nclst, FATFS** fatfs); /* Get number of free clusters on the drive */

第一個入參是文件路徑,第二個參數剩餘空間的指針,第三個參數是文件名。

二 實例解析

下面看一下實例解析:

void get_fafts_info(void)
{
    
    FATFS *pfs = &SDFatFS;


    DWORD fre_clust, fre_size, tot_size;
    
    uint8_t result = f_getfree(simulate_filename, &fre_clust, &pfs );
    
    if( result == FR_OK )
    {
        // 總容量計算方法
        // pfs->csize 該參數代表一個簇佔用幾個 SD卡物理扇區,每個扇區512字節
        // pfs->n_fatent 簇的數量+2
        // 總容量 = 總簇數*一個簇佔用大小
        // 剩餘容量 = 剩餘簇數*一個簇佔用大小
        tot_size = (pfs->n_fatent - 2) * pfs->csize/2; // 總容量    單位Kbyte
        fre_size = fre_clust * pfs->csize/2;           // 可用容量  單位Kbyte

        mprintf("f_getfree sd tot_sect: %lu Mbytes\r\n", tot_size/1024 );
        mprintf("f_getfree sd fre_sect: %lu Mbytes\r\n", fre_size/1024 );
        
    }
    else
    {
        mprintf("f_getfree err : %d \r\n", result);

    }

}

 

三 總結

 這個代碼是驗證ok了。後面繼續深入的分析其他功能。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章