$files->rmdir() method

Remove a directory and optionally everything within it (recursively)

Unlike PHP's rmdir() function, this method provides a recursive option, which can be enabled by specifying true for the $recursive argument. You should be careful with this option, as it can easily wipe out an entire directory tree in a flash.

Note that the $options argument was added in 3.0.118.

Example

// Remove directory /site/assets/cache/foo-bar/ and everything in it
$files->rmdir($config->paths->cache . 'foo-bar/', true);

// Remove directory after ensuring $pathname is somewhere within /site/assets/
$files->rmdir($pathname, true, [ 'limitPath' => $config->paths->assets ]); 

Usage

// basic usage
$bool = $files->rmdir(string $path);

// usage with all arguments
$bool = $files->rmdir(string $path, bool $recursive = false, $options = []);

Arguments

NameType(s)Description
pathstring

Path/directory you want to remove

recursive (optional)bool

If set to true, all files and directories in $path will be recursively removed as well (default=false).

options (optional)array, bool, string

Optional settings to adjust behavior or (bool|string) for limitPath option:

  • limitPath (string|bool|array): Must be somewhere within given path, boolean true for site assets, or false to disable (default=false).
  • throw (bool): Throw verbose WireException (rather than return false) when potentially consequential fail (default=false).

Return value

bool

True on success, false on failure


$files methods and properties

API reference based on ProcessWire core version 3.0.236

Latest news

  • ProcessWire Weekly #519
    In the 519th issue of ProcessWire Weekly we'll check out a new third party module called RockForms, introduce the latest ProcessWire core updates, and more. Read on!
    Weekly.pw / 20 April 2024
  • ProFields Table Field with Actions support
    This week we have some updates for the ProFields table field (FieldtypeTable). These updates are primarily focused on adding new tools for the editor to facilitate input and management of content in a table field.
    Blog / 12 April 2024
  • Subscribe to weekly ProcessWire news

I just love the easy and intuitive ProcessWire API. ProcessWire rocks!” —Jens Martsch, Web developer