PHP复制文件 移动到其他文件夹内

用写一个PHP小文件功能如下复制目录下的文件到其他文件夹内,假如容量一样就不移动假如容量不一样就覆盖假如这个文件夹内容没有该文件就复制过去... 用写一个PHP小文件
功能如下
复制目录下的文件到其他文件夹内,
假如容量一样 就不移动
假如容量不一样 就覆盖
假如这个文件夹内容没有该文件 就复制过去
展开
 我来答
宇宙大师之一
推荐于2017-09-24 · TA获得超过3476个赞
知道小有建树答主
回答量:2271
采纳率:52%
帮助的人:715万
展开全部
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,则如果封装协议不支持覆盖已有的文件时拷贝操作会失败。

重要事项:如果目标文件已存在,将会被覆盖。

例如:
<?php
echo copy("source.txt","new_file/target.txt");
?>
本逸春vL
推荐于2017-09-05 · TA获得超过1567个赞
知道小有建树答主
回答量:812
采纳率:0%
帮助的人:648万
展开全部

你要的是合并两个目录吗?

$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;
}
追问
不是合并的
是复制覆盖,不过很感谢你。这个也是可以的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-14
展开全部
要代码就不给,自己去写,要思路吗?
1、对两个目录下的文件参数读取
2、循环对比文件大小
3、循环内判断目标目录中文件大小与源目录中文件是否不相等,符合就覆盖
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友091845d
2013-11-14 · TA获得超过745个赞
知道小有建树答主
回答量:466
采纳率:50%
帮助的人:333万
展开全部
没有看明白 你的需要是什么,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式