$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).


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


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

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



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


True on success, false on failure

$files methods and properties

API reference based on ProcessWire core version 3.0.228

Latest news

  • ProcessWire Weekly #498
    The 498th issue of ProcessWire Weekly brings in all the latest news from the ProcessWire community. Modules, sites, and more. Read on!
    Weekly.pw / 25 November 2023
  • Using date range fields in ProcessWire
    This week we'll take a detailed look at the newest addition to the ProFields set of modules: the Date Range Fieldtype and Inputfield.
    Blog / 24 November 2023
  • Subscribe to weekly ProcessWire news

“To Drupal, or to ProcessWire? The million dollar choice. We decided to make an early switch to PW. And in retrospect, ProcessWire was probably the best decision we made. Thanks are due to ProcessWire and the amazing system and set of modules that are in place.” —Unni Krishnan, Founder of PigtailPundits