WordPress at a glance

list_files() WP 1.0

Returns a listing of all files in the specified folder and all subdirectories up to 100 levels deep. The depth of the recursiveness can be controlled by the $levels param.

  • Since 4.9.0 Added the $exclusions parameter.

No Hooks.

Return

true/false/Array. False on failure, Else array of files

Usage

list_files( $folder, $levels, $exclusions );
$folder(string)
Full path to folder.
Default: ''
$levels(int)
Levels of folders to follow, Default 100 (PHP Loop limit).
Default: 100
$exclusions(array)
List of folders and files to skip.
Default: array()

Code of list_files: wp-admin/includes/file.php VER 5.0

<?php
function list_files( $folder = '', $levels = 100, $exclusions = array() ) {
	if ( empty( $folder ) ) {
		return false;
	}

	$folder = trailingslashit( $folder );

	if ( ! $levels ) {
		return false;
	}

	$files = array();

	$dir = @opendir( $folder );
	if ( $dir ) {
		while ( ( $file = readdir( $dir ) ) !== false ) {
			// Skip current and parent folder links.
			if ( in_array( $file, array( '.', '..' ), true ) ) {
				continue;
			}

			// Skip hidden and excluded files.
			if ( '.' === $file[0] || in_array( $file, $exclusions, true ) ) {
				continue;
			}

			if ( is_dir( $folder . $file ) ) {
				$files2 = list_files( $folder . $file, $levels - 1 );
				if ( $files2 ) {
					$files = array_merge($files, $files2 );
				} else {
					$files[] = $folder . $file . '/';
				}
			} else {
				$files[] = $folder . $file;
			}
		}
	}
	@closedir( $dir );

	return $files;
}

Related Functions

From tag: File system (create delete files folders)

No comments
    Hello, !     Log In . Register