## f_stat

The f_stat function checks the existence of a file or sub-directory.

    FRESULT f_stat (
      const TCHAR* path,  /* [IN] Object name */
      FILINFO* fno        /* [OUT] FILINFO structure */
    );

#### Parameters

path
  Pointer to the null-terminated string that specifies the object to get its information. The object must not be the root direcotry.
fno
  Pointer to the blank `FILINFO` structure to store the information of the object. Set null pointer if this information is not needed.

#### Return Values

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

#### Description

The `f_stat` function checks the existence of a file or sub-directory in the directory. If it is not exist, the function returns with `FR_NO_FILE`. If it is exist, the function returns with `FR_OK` and the informations about the object, size, timestamp and attribute, is stored to the file information structure. For details of the file information, refer to the `FILINFO` structure and `f_readdir` function.

Note that the file information comes from the meta data in the directory. If the file has been opend and modified, the file will need to be synched or closed in order to obtain the latest file information.

#### QuickInfo

Available when `FF_FS_MINIMIZE == 0`.

#### Example

        FRESULT fr;
        FILINFO fno;
        const char *fname = "file.txt";

        printf("Test for \"%s\"...\n", fname);

        fr = f_stat(fname, &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("\"%s\" is not exist.\n", fname);
            break;

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

#### References

`f_opendir, f_readdir, FILINFO`

Return