f_stat

ファイルまたはサブ ディレクトリの存在を調べ、またその情報を取得します。

FRESULT f_stat (
  const TCHAR* path,  /* [IN] オブジェクト名へのポインタ */
  FILINFO* fno        /* [OUT] ファイル情報構造体へのポインタ */
);

引数

path
チェックするオブジェクト名を示すヌル文字'\0'終端の文字列を指すポインタを指定します。
fno
オブジェクトが存在したときにその情報を格納するファイル情報構造体へのポインタを指定します。この情報が不要なときはヌル ポインタを指定してください。

戻り値

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

解説

指定されたファイルまたはサブ ディレクトリの存在を調べます。存在しない場合は、FR_NO_FILEが帰ります。存在する場合はFR_OKが帰り、ファイル情報構造体にそれ関する情報(サイズ、タイムスタンプ、属性および短いファイル名)がストアされます。

LFN構成のときは、ファイル情報構造体を使う前にfno.lfnameをヌルに設定しておく必要があります。

対応情報

_FS_MINIMIZE == 0のときに使用可能です。

使用例

    FRESULT fr;
    FILINFO fno;


    printf("Test for 'file.txt'...\n");

#if _USE_LFN
    fno.lfname = 0;
#endif
    fr = f_stat("file.txt", &fno);
    switch (fr) {

    case FR_OK:
        printf("Size: %u\n", fno.fsize);
        printf("Timestamp: %u/%02u/%02u, %02u:%02u\n",
               (fno.fdate >> 9) + 1980, fno.fdate >> 5 & 15, fno.fdate & 31,
               fno.ftime >> 11, fno.ftime >> 5 & 63);
        printf("Attributes: %c%c%c%c%c\n",
               (fno.fattrib & AM_DIR) ? 'D' : '-',
               (fno.fattrib & AM_RDO) ? 'R' : '-',
               (fno.fattrib & AM_HID) ? 'H' : '-',
               (fno.fattrib & AM_SYS) ? 'S' : '-',
               (fno.fattrib & AM_ARC) ? 'A' : '-');
        break;

    case FR_NO_FILE:
        printf("It is not exist.\n");
        break;

    default:
        printf("An error occured. (%d)\n", fr);
    }

参照

f_opendir, f_readdir, FILINFO, DIR

戻る