On this page
WP_Filesystem_FTPext::dirlist( string $path = '.', bool $include_hidden = true, bool $recursive = false ): array|false
Gets details for files in a directory or a specific file.
Parameters
$pathstring Optional-
Path to directory or file.
Default:
'.' $include_hiddenbool Optional-
Whether to include details of hidden ("." prefixed) files.
Default:
true $recursivebool Optional-
Whether to recursively include file details in nested directories.
Default:
false
Return
array|false Array of files. False if unable to list directory contents.
namestringName of the file or directory.permsstring*nix representation of permissions.permsnstringOctal representation of permissions.ownerstringOwner name or ID.sizeintSize of file in bytes.lastmodunixintLast modified unix timestamp.lastmodmixedLast modified month (3 letter) and day (without leading 0).timeintLast modified time.typestringType of resource.'f'for file,'d'for directory.filesmixedIf a directory and$recursiveis true, contains another array of files.
Source
File: wp-admin/includes/class-wp-filesystem-ftpext.php. View all references
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 ) ) { // Can't 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;
}
Related
Uses
| Uses | Description |
|---|---|
| WP_Filesystem_FTPext::is_file() wp-admin/includes/class-wp-filesystem-ftpext.php | Checks if resource is a file. |
| WP_Filesystem_FTPext::parselisting() wp-admin/includes/class-wp-filesystem-ftpext.php | |
| WP_Filesystem_FTPext::dirlist() wp-admin/includes/class-wp-filesystem-ftpext.php | Gets details for files in a directory or a specific file. |
Used By
| Used By | Description |
|---|---|
| WP_Filesystem_FTPext::dirlist() wp-admin/includes/class-wp-filesystem-ftpext.php | Gets details for files in a directory or a specific file. |
| WP_Filesystem_FTPext::chmod() wp-admin/includes/class-wp-filesystem-ftpext.php | Changes filesystem permissions. |
| WP_Filesystem_FTPext::owner() wp-admin/includes/class-wp-filesystem-ftpext.php | Gets the file owner. |
| WP_Filesystem_FTPext::getchmod() wp-admin/includes/class-wp-filesystem-ftpext.php | Gets the permissions of the specified file or filepath in their octal format. |
| WP_Filesystem_FTPext::group() wp-admin/includes/class-wp-filesystem-ftpext.php | Gets the file’s group. |
| WP_Filesystem_FTPext::delete() wp-admin/includes/class-wp-filesystem-ftpext.php | Deletes a file or directory. |
Changelog
| Version | Description |
|---|---|
| 2.5.0 | Introduced. |
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/wp_filesystem_ftpext/dirlist