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()
.
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
Return
bool True on success, false on failure.
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;
}
}
Changelog
Version | Description |
---|---|
2.5.0 | Introduced. |