$files->rename() method

Rename a file or directory and update permissions

Note that this method will fail if pathname given by $newName argument already exists.

Available since version 3.0.118.

Usage

// basic usage
$bool = $files->rename(string $oldName, string $newName);

// usage with all arguments
$bool = $files->rename(string $oldName, string $newName, $options = []);

Arguments

NameType(s)Description
oldNamestring

Old pathname, must be full disk path.

newNamestring

New pathname, must be full disk path OR can be basename to assume same path as $oldName.

options (optional)array, bool, string

Options array to modify behavior or substitute limitPath (bool or string) option here.

  • limitPath (bool|string|array): Limit renames to within this path, or boolean TRUE for site/assets, or FALSE to disable (default=false).
  • throw (bool): Throw WireException with verbose details on error? (default=false)
  • chmod (bool): Adjust permissions to be consistent with $config after rename? (default=true)
  • copy (bool): Use copy-then-delete method rather than a file system rename. (default=false) 3.0.178+
  • retry (bool): Retry with 'copy' method if regular rename files, applies only if copy option is false. (default=true) 3.0.178+
  • If given a bool or string for $options the limitPath option is assumed.

Return value

bool

True on success, false on fail (or WireException if throw option specified).

Exceptions

Method can throw exceptions on error:

  • WireException - If error occurs and $throw argument was true.


$files methods and properties

API reference based on ProcessWire core version 3.0.236

Latest news

  • ProcessWire Weekly #550
    In the 550th issue of ProcessWire Weekly we're going to check out the latest core updates, introduce a new third party module called PagefileMetadata, and more. Read on!
    Weekly.pw / 23 November 2024
  • Custom Fields Module
    This week we look at a new ProFields module named Custom Fields. This module provides a way to rapidly build out ProcessWire fields that contain any number of subfields/properties within them.
    Blog / 30 August 2024
  • Subscribe to weekly ProcessWire news

“We chose ProcessWire because of its excellent architecture, modular extensibility and the internal API. The CMS offers the necessary flexibility and performance for such a complex website like superbude.de. ProcessWire offers options that are only available for larger systems, such as Drupal, and allows a much slimmer development process.” —xport communication GmbH