$files->mkdir() method

Create a directory that is writable to ProcessWire and uses the defined $config chmod settings

Unlike PHP's mkdir() function, this function manages the read/write mode consistent with ProcessWire's setting $config->chmodDir, and it can create directories recursively. Meaning, if you want to create directory /a/b/c/ and directory /a/ doesn't yet exist, this method will take care of creating /a/, /a/b/, and /a/b/c/.

The $recursive and $chmod arguments may optionally be swapped (since 3.0.34).

Example

// Create a new directory in ProcessWire's cache dir
if($files->mkdir($config->paths->cache . 'foo-bar/')) {
  // directory created: /site/assets/cache/foo-bar/
}

Usage

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

// usage with all arguments
$bool = $files->mkdir(string $path, $recursive = false, $chmod = null);

Arguments

NameType(s)Description
pathstring

Directory you want to create

recursive (optional)bool, string

If set to true, all directories will be created as needed to reach the end.

chmod (optional)string, null, bool

Optional mode to set directory to (default: $config->chmodDir), format must be a string i.e. "0755" If omitted, then ProcessWire's $config->chmodDir setting is used instead.

Return value

bool

True on success, false on failure


$files methods and properties

API reference based on ProcessWire core version 3.0.244

Latest news

  • ProcessWire Weekly #560
    In the 560th issue of ProcessWire Weekly we'll check out the latest core updates, cover newly released ProcessWire modules, and more. Read on!
    Weekly.pw / 1 February 2025
  • ProcessWire 3.0.244 new main/master version
    ProcessWire 3.0.244 is our newest main/master/stable version. It's been more than a year in the making and is packed with tons of new features, issue fixes, optimizations and more. This post covers all the details.
    Blog / 18 January 2025
  • Subscribe to weekly ProcessWire news

“Yesterday I sent the client a short documentation for their ProcessWire-powered website. Today all features already used with no questions. #cmsdoneright—Marc Hinse, Web designer/developer