$files->find() method

Find all files in the given $path recursively, and return a flat array of all found filenames

Available since version 3.0.96.

Usage

// basic usage
$array = $files->find(string $path);

// usage with all arguments
$array = $files->find(string $path, array $options = []);

Arguments

NameType(s)Description
pathstring

Path to start from (required).

options (optional)array

Options to affect what is returned (optional):

  • recursive (int|bool): How many levels of subdirectories this method should descend into beyond the 1 given. Specify 1 to remain at the one directory level given, or 2+ to descend into subdirectories. (default=10) In 3.0.180+ you may also specify true for no limit, or false to disable descending into any subdirectories.
  • extensions (array|string): Only include files having these extensions, or omit to include all (default=[]). In 3.0.180+ the extensions argument may also be a string (space or comma separated).
  • excludeDirNames (array): Do not descend into directories having these names (default=[]).
  • excludeHidden (bool): Exclude hidden files? (default=false).
  • allowDirs (bool): Allow directories in returned files (except for '.' and '..')? Note that returned directories have a trailing slash. (default=false) 3.0.180+
  • returnRelative (bool): Make returned array have filenames relative to given start $path? (default=false)

Return value

array

Flat array of filenames


$files methods and properties

API reference based on ProcessWire core version 3.0.200

Twitter updates

  • A review of weekly core updates, plus a simple recipe for a very effective listing cache—More
    24 June 2022
  • Weekly update: Making ProcessWire render pages at old WordPress URLs (or building a simple/custom URL router in PW): More
    17 June 2022
  • New post: ProcessWire now comes with just 1 site installation profile, the "blank" profile. It makes very few assumptions, making it a minimal though excellent starting point. Here’s how you might use it— More
    10 June 2022

Latest news

  • ProcessWire Weekly #424
    In the 424th issue of ProcessWire Weekly we'll check out the latest weekly update from Ryan, introduce a new third party module, and more. Read on!
    Weekly.pw / 25 June 2022
  • Starting a site with the “blank” profile
    ProcessWire 3.0.200+ comes with just 1 site installation profile, the site-blank profile. This profile makes very few assumptions, making it a minimal though excellent starting point. Here’s how you might use it. 
    Blog / 10 June 2022
  • Subscribe to weekly ProcessWire news

“I am currently managing a ProcessWire site with 2 million+ pages. It’s admirably fast, and much, much faster than any other CMS we tested.” —Nickie, Web developer