PHP 中的 copy() 函数可以实现
copy() 函数拷贝文件。
copy(source,destination)
参数说明
source 必需。规定要复制的文件。
destination 必需。规定复制文件的目的地。
详细说明
将文件从 source 拷贝到 destination。如果成功则返回 TRUE,否则返回 FALSE。
提示:如果要移动文件的话,请使用 rename() 函数。
注释:从 PHP 4.3.0 开始,如果启用了 "fopen wrappers" 的话,source 和 destination 都可以是 URL。更多信息见 fopen()。如果 destination 是一个 URL,则如果封装协议不支持覆盖已有的文件时拷贝操作会失败。
重要事项:如果目标文件已存在,将会被覆盖。
例如:
echo copy("source.txt","new_file/target.txt");
?>
你要的是合并两个目录吗?
$source = 'D:/source/';
$target = 'D:/target/';
echo copy_merge ( $source, $target );
/**
* 合并目录
* @param $source 要合并的文件夹
* @param $target 要合并的目的地
* @return int 处理的文件数
*/
function copy_merge($source, $target) {
// 路径处理
$source = preg_replace ( '#/\\\\#', DIRECTORY_SEPARATOR, $source );
$target = preg_replace ( '#\/#', DIRECTORY_SEPARATOR, $target );
$source = rtrim ( $source, DIRECTORY_SEPARATOR ) . DIRECTORY_SEPARATOR;
$target = rtrim ( $target, DIRECTORY_SEPARATOR ) . DIRECTORY_SEPARATOR;
// 记录处理了多少文件
$count = 0;
// 如果目标目录不存在,则创建。
if (! is_dir ( $target )) {
mkdir ( $target, 0777, true );
$count ++;
}
// 搜索目录下的所有文件
foreach ( glob ( $source . '*' ) as $filename ) {
if (is_dir ( $filename )) {
// 如果是目录,递归合并子目录下的文件。
$count += copy_merge ( $filename, $target . basename ( $filename ) );
} elseif (is_file ( $filename )) {
// 如果是文件,判断当前文件与目标文件是否一样,不一样则拷贝覆盖。
// 这里使用的是文件md5进行的一致性判断,可靠但性能低,应根据实际情况调整。
if (! file_exists ( $target . basename ( $filename ) ) || md5 ( file_get_contents ( $filename ) ) != md5 ( file_get_contents ( $target . basename ( $filename ) ) )) {
copy ( $filename, $target . basename ( $filename ) );
$count ++;
}
}
}
// 返回处理了多少个文件
return $count;
}
要代码就不给,自己去写,要思路吗?
1、对两个目录下的文件参数读取
2、循环对比文件大小
3、循环内判断目标目录中文件大小与源目录中文件是否不相等,符合就覆盖
没有看明白 你的需要是什么,