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


Description Description


Parameters Parameters

$path

(string) (Optional)

Default value: '.'

$include_hidden

(bool) (Optional)

Default value: true

$recursive

(bool) (Optional)

Default value: false


Top ↑

Return Return

(bool|array)


Top ↑

Source Source

File: wp-admin/includes/class-wp-filesystem-ftpext.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;
		}

		$pwd = @ftp_pwd( $this->link );
		if ( ! @ftp_chdir( $this->link, $path ) ) { // Cant change to folder = folder doesn't exist
			return false;
		}
		$list = @ftp_rawlist( $this->link, '-a', false );
		@ftp_chdir( $this->link, $pwd );

		if ( empty( $list ) ) { // Empty array = non-existent folder (real folder will show . at least)
			return false;
		}

		$dirlist = array();
		foreach ( $list as $k => $v ) {
			$entry = $this->parselisting( $v );
			if ( empty( $entry ) ) {
				continue;
			}

			if ( '.' == $entry['name'] || '..' == $entry['name'] ) {
				continue;
			}

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

			if ( $limit_file && $entry['name'] != $limit_file ) {
				continue;
			}

			$dirlist[ $entry['name'] ] = $entry;
		}

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

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


Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.