WP_Filesystem_Direct::delete( string $file, bool $recursive = false, string|false $type = false )

Deletes a file or directory.


Description Description


Parameters Parameters

$file

(string) (Required) Path to the file or directory.

$recursive

(bool) (Optional) If set to true, changes file group recursively.

Default value: false

$type

(string|false) (Optional) Type of resource. 'f' for file, 'd' for directory.

Default value: false


Top ↑

Return Return

(bool) True on success, false on failure.


Top ↑

Source 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;
	}

Top ↑

Changelog Changelog

Changelog
Version Description
2.5.0 Introduced.


Top ↑

User Contributed Notes User Contributed Notes

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