## f_rename

Rename file or directory.

    FRESULT f_rename (
      const char* OldName, /* Pointer to old file/directory name */
      const char* NewName  /* Pointer to new file/directory name */
    );

#### Parameters

OldName
  Pointer to a null-terminated string specifies the old file/directory name to be renamed.
NewName
  Pointer to a null-terminated string specifies the new file/directory name without drive number. Existing object nannot be specified.

#### Return Values

FR_OK (0)
  The function succeeded.
FR_NO_FILE
  Could not find the file nor directory.
FR_NO_PATH
  Could not find the path.
FR_INVALID_NAME
  The file name is invalid.
FR_INVALID_DRIVE
  The drive number is invalid.
FR_NOT_READY
  The disk drive cannot work due to no medium in the drive or any other reason.
FR_DENIED
  The new name could not be created due to any reason.
FR_WRITE_PROTECTED
  The medium is write protected.
FR_RW_ERROR
  The function failed due to a disk error or an internal error.
FR_NOT_ENABLED
  The logical drive has no work area.
FR_NO_FILESYSTEM
  There is no valid FAT partition on the disk.

#### Description

Rename a file or directory and can move it to other directory. Logical drive number is determined by old name, new name must not contain logical drive number. This function is not supported in read-only configuration or minimization level of >= 1.

Note: In this revision, moving any directory to other directory collapses the FAT structure on the disk.

#### Example

        // Rename file or directory
        f_rename("oldname.txt", "newname.txt");

        // Rename and move file to other directory simultaneously
        f_rename("oldname.txt", "dir1/newname.txt");

Return