WP_Filesystem_Direct::move( string $source, string $destination, bool $overwrite = false ): bool

Moves a file or directory.


Description

After moving files or directories, OPcache will need to be invalidated.

If moving a directory fails, copy_dir() can be used for a recursive copy.

Use move_dir() for moving directories with OPcache invalidation and a fallback to copy_dir().


Top ↑

Parameters

$source string Required
Path to the source file.
$destination string Required
Path to the destination file.
$overwrite bool Optional
Whether to overwrite the destination file if it exists.

Default: false


Top ↑

Return

bool True on success, false on failure.


Top ↑

Source

File: wp-admin/includes/class-wp-filesystem-direct.php. View all references

public function move( $source, $destination, $overwrite = false ) {
	if ( ! $overwrite && $this->exists( $destination ) ) {
		return false;
	}

	if ( $overwrite && $this->exists( $destination ) && ! $this->delete( $destination, true ) ) {
		// Can't overwrite if the destination couldn't be deleted.
		return false;
	}

	// Try using rename first. if that fails (for example, source is read only) try copy.
	if ( @rename( $source, $destination ) ) {
		return true;
	}

	// Backward compatibility: Only fall back to `::copy()` for single files.
	if ( $this->is_file( $source ) && $this->copy( $source, $destination, $overwrite ) && $this->exists( $destination ) ) {
		$this->delete( $source );

		return true;
	} else {
		return false;
	}
}


Top ↑

Changelog

Changelog
Version Description
2.5.0 Introduced.

Top ↑

User Contributed Notes

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