【发布时间】:2016-07-28 22:05:23
【问题描述】:
在 PHP 中,我想递归地将目录及其子目录中的所有文件复制到单个目录没有子目录。
例如
.../dir/subdir1/file1.pdf
.../dir/subdir1/file2.pdf
.../dir/subdir2/file3.pdf
.../dir/subdir2/file4.pdf
应该变成:
.../newdir/file1.pdf
.../newdir/file2.pdf
.../newdir/file3.pdf
.../newdir/file4.pdf
即。不再有“子目录”级别。
我正在使用这个 PHP 代码,它复制了所有文件,但保留了不需要的子目录:
<?php
$src = "/dir/";
$dst = "/newdir/";
function recurse_copy($src,$dst) {
$dir = opendir($src);
@mkdir($dst);
while(false !== ( $file = readdir($dir)) ) {
if (( $file != '.' ) && ( $file != '..' )) {
if ( is_dir($src . '/' . $file) ) {
recurse_copy($src . '/' . $file,$dst . '/' . $file);
}
else {
copy($src . '/' . $file,$dst . '/' . $file);
}
}
}
closedir($dir);
}
recurse_copy($src,$dst);
echo "<H3>Copy Paste completed!</H3>"; //output when done
?>
【问题讨论】: