Home »
PHP »
PHP Programs
PHP - Copy the entire contents of a directory to another directory
By IncludeHelp Last updated : January 10, 2024
Problem statement
Write a PHP program to copy the entire contents of a directory to another directory.
Copying the entire contents of a directory to another directory
- Write a recursive function.
- Open the source directory using the opendir() function.
- Make the target directory (if does not exists) using the @mkdir() function.
- Loop through the files in the source directory, and read the directory using the readdir() function.
- Check the conditions for file existence inside the loop.
- If files exist, copy files from source path to target path.
- Call the function recursively.
PHP program to copy the entire contents of a directory to another directory
Here, are copying all files from the source directory which is (E:/samples/collection) to another (E:/php_programs/new).
<?php
function copy_all_files($source_dir, $target_dir)
{
// opening the source directory
$dir_obj = opendir($source_dir);
// creating targeted directory if it does not exist
@mkdir($target_dir);
while ($file = readdir($dir_obj)) {
if ($file != "." && $file != "..") {
if (is_dir($source_dir . "/" . $file)) {
// Recursive call
copy_all_files(
$source_dir . "/" . $file,
$target_dir . "/" . $file
);
} else {
copy($source_dir . "/" . $file, $target_dir . "/" . $file);
}
}
}
closedir($dir_obj);
}
// Main code
$source_dir = "E:/samples/collection";
$target_dir = "E:/php_programs/new";
copy_all_files($source_dir, $target_dir);
?>
More PHP File Handling Programs »