WP_Filesystem_ftpsockets::dirlist( string $path = '.', bool $include_hidden = true, bool $recursive = false )

Gets details for files in a directory or a specific file.


Parameters

$path

(Optional) Path to directory or file.

Default value: '.'

$include_hidden

(Optional) Whether to include details of hidden ("." prefixed) files.<br>

Default value: true

$recursive

(Optional) Whether to recursively include file details in nested directories.<br>

Default value: false


Return

(array|false) Array of files. False if unable to list directory contents.<br>

  • 'name'
    (string) Name of the file or directory.<br>
  • 'perms'
    (string) *nix representation of permissions.<br>
  • 'permsn'
    (string) Octal representation of permissions.<br>
  • 'owner'
    (string) Owner name or ID.<br>
  • 'size'
    (int) Size of file in bytes.<br>
  • 'lastmodunix'
    (int) Last modified unix timestamp.<br>
  • 'lastmod'
    (mixed) Last modified month (3 letter) and day (without leading 0).<br>
  • 'time'
    (int) Last modified time.<br>
  • 'type'
    (string) Type of resource. 'f' for file, 'd' for directory.<br>
  • 'files'
    (mixed) If a directory and $recursive is true, contains another array of files.<br>


Source

File: wp-admin/includes/class-wp-filesystem-ftpsockets.php

	public function dirlist($path = '.', $include_hidden = true, $recursive = false ) {
		if ( $this->is_file($path) ) {
			$limit_file = basename($path);
			$path = dirname($path) . '/';
		} else {
			$limit_file = false;
		}

		mbstring_binary_safe_encoding();

		$list = $this->ftp->dirlist($path);
		if ( empty( $list ) && ! $this->exists( $path ) ) {

			reset_mbstring_encoding();

			return false;
		}

		$ret = array();
		foreach ( $list as $struc ) {

			if ( '.' == $struc['name'] || '..' == $struc['name'] )
				continue;

			if ( ! $include_hidden && '.' == $struc['name'][0] )
				continue;

			if ( $limit_file && $struc['name'] != $limit_file )
				continue;

			if ( 'd' == $struc['type'] ) {
				if ( $recursive )
					$struc['files'] = $this->dirlist($path . '/' . $struc['name'], $include_hidden, $recursive);
				else
					$struc['files'] = array();
			}

			// Replace symlinks formatted as "source -> target" with just the source name
			if ( $struc['islink'] )
				$struc['name'] = preg_replace( '/(\s*->\s*.*)$/', '', $struc['name'] );

			// Add the Octal representation of the file permissions
			$struc['permsn'] = $this->getnumchmodfromh( $struc['perms'] );

			$ret[ $struc['name'] ] = $struc;
		}

		reset_mbstring_encoding();

		return $ret;
	}


Changelog

Changelog
Version Description
2.5.0 Introduced.