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.
Return
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.8.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 ); } } else { if ( 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.' ); } }