WP_CLI
Extractor::copy_overwrite_files
Copy files from source directory to destination directory. Source directory must exist.
Method of the class: Extractor{}
No Hooks.
Returns
null. Nothing (null).
Usage
$result = Extractor::copy_overwrite_files( $source, $dest );
- $source(string) (required)
- .
- $dest(string) (required)
- .
Extractor::copy_overwrite_files() Extractor::copy overwrite files code WP-CLI 2.13.0-alpha
public static function copy_overwrite_files( $source, $dest ) {
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator(
$source,
RecursiveDirectoryIterator::SKIP_DOTS
),
RecursiveIteratorIterator::SELF_FIRST
);
$error = 0;
if ( ! is_dir( $dest ) ) {
mkdir( $dest, 0777, true );
}
foreach ( $iterator as $item ) {
$dest_path = $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName();
if ( $item->isDir() ) {
if ( ! is_dir( $dest_path ) ) {
mkdir( $dest_path );
}
} elseif ( file_exists( $dest_path ) && is_writable( $dest_path ) ) {
copy( $item, $dest_path );
} elseif ( ! file_exists( $dest_path ) ) {
copy( $item, $dest_path );
} else {
$error = 1;
WP_CLI::warning( "Unable to copy '" . $iterator->getSubPathName() . "' to current directory." );
}
}
if ( $error ) {
throw new Exception( 'There was an error overwriting existing files.' );
}
}