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


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

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



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


Flat array of filenames

$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

“Indeed, if ProcessWire can be considered as a CMS in its own right, it also offers all the advantages of a CMF (Content Management Framework). Unlike other solutions, the programmer is not forced to follow the proposed model and can integrate his/her ways of doing things.” —Guy Verville, Spiria Digital Inc.