# FatFs - f_stat

## 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`が帰り、それ関する情報(サイズ、タイムスタンプおよび属性)がファイル情報構造体にストアされます。

#### 対応情報

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

#### 使用例

        FRESULT fr;
        FILINFO fno;

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

        fr = f_stat("file.txt", &fno);
        switch (fr) {

        case FR_OK:
            printf("Size: %lu\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`

戻る