## 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`

戻る