## f_rename

Rename file or directory.

    FRESULT f_rename (
      const XCHAR* OldName, /* Pointer to old file/directory name */
      const XCHAR* 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.

#### Return Values

FR_OK (0)
  The function succeeded.
FR_NO_FILE
  Could not find the old name.
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_EXIST
  The new name is colliding with an existing name.
FR_DENIED
  The new name could not be created due to any reason.
FR_WRITE_PROTECTED
  The medium is write protected.
FR_DISK_ERR
  The function failed due to an error in the disk function.
FR_INT_ERR
  The function failed due to a wrong FAT structure or an internal error.
FR_NOT_ENABLED
  The logical drive has no work area.
FR_NO_FILESYSTEM
  There is no valid FAT volume 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.

#### QuickInfo

Available when `_FS_READONLY == 0` and `_FS_MINIMIZE == 0`.

#### Example

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

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

Return