WP_Filesystem_Direct::delete( string $file, bool $recursive = false, string|false $type = false )
Deletes a file or directory.
Parameters
- $file
-
(Required) Path to the file or directory.
- $recursive
-
(Optional) If set to true, deletes files and folders recursively.<br>
Default value: false
- $type
-
(Optional) Type of resource. 'f' for file, 'd' for directory.<br>
Default value: false
Return
(bool) True on success, false on failure.
Source
File: wp-admin/includes/class-wp-filesystem-direct.php
public function delete($file, $recursive = false, $type = false) {
if ( empty( $file ) ) // Some filesystems report this as /, which can cause non-expected recursive deletion of all files in the filesystem.
return false;
$file = str_replace( '\\', '/', $file ); // for win32, occasional problems deleting files otherwise
if ( 'f' == $type || $this->is_file($file) )
return @unlink($file);
if ( ! $recursive && $this->is_dir($file) )
return @rmdir($file);
// At this point it's a folder, and we're in recursive mode
$file = trailingslashit($file);
$filelist = $this->dirlist($file, true);
$retval = true;
if ( is_array( $filelist ) ) {
foreach ( $filelist as $filename => $fileinfo ) {
if ( ! $this->delete($file . $filename, $recursive, $fileinfo['type']) )
$retval = false;
}
}
if ( file_exists($file) && ! @rmdir($file) )
$retval = false;
return $retval;
}
Changelog
Version | Description |
---|---|
2.5.0 | Introduced. |