项目中需要从不同文件夹中同步文件,自己写了个小方法,备注一下
设计思路
1.检查拷贝文件夹是否存在。
2.逐级检查子文件夹内文件
3.检查各个文件夹内文件
4.检查目标目录路径是否存在,不存在时创建同名文件夹
5.拷贝到目标目录。
function finddir($path = '') { //切换当前路径(递归用) chdir ( $path ); $base_path = getcwd (); //判断路径是否存在 if (is_dir ( $base_path )) { //打开目录句柄。 $dir = opendir ( $base_path ); while ( ($file = readdir ( $dir )) !== false ) { //排除根目录路径('.','..') if (! in_array ( $file, array (".", ".." ) )) { //文件拷贝 if (is_file ( $file )) { //拷贝目标目录 $aim_path = str_replace ( 'downfile', 'copyfile', $base_path ); //判断目录是否存在,如果否,创建目录。 if (! is_dir ( $aim_path )) { mkdir ( $aim_path, 0777, TRUE ); } //拷贝到指定目录 copy ( $file, $aim_path . '/' . $file ); } //查找子文件夹 if (is_dir ( $file )) { finddir ( $file ); chdir ( '../' ); } } } //关闭目录句柄 closedir ( $dir ); } }