php 大批量文件处理,php 批量进行复制文件

1、前言

目标:php批量进行复制指定的目录文件夹下所有文件复制到另一个文件夹下

所使用的的php函数:is_dir,opendir,readdir,scandir,mkdir,closedir,等等(注:其他文件操作函数也可以完成,这里只列举了本次使用的函数)

2、相关函数介绍

2.1、is_dir

详情参考:https://www.w3cschool.cn/php/func-filesystem-is-dir.html

bdd58d5c2d77c0762ac9c69d8a3eda74.png

2.2、opendir

详情参考:https://www.w3cschool.cn/php/func-directory-opendir.html

c5b28d26b7206d72d1ee58b589179990.png

2.3、readdir

详情参考:https://www.w3cschool.cn/php/func-directory-readdir.html

4a17d09da7324206449944b11d44f2e8.png

2.4、scandir

详情参考:https://www.w3cschool.cn/php/func-directory-scandir.html

680644181fcb0813ca1820532ece145b.png

2.5、mkdir

详情参考:https://www.w3cschool.cn/php/func-filesystem-mkdir.html

af782e0cd4501bdcc11b4c4cd4bdf23d.png

2.6、closedir

详情参考:https://www.w3cschool.cn/php/func-directory-closedir.html

1d30a7fc79ef2f0dcb6fcaba0e352317.png

3、本次测试的目录结构

4d4dd817b73a4b678a9326f7e5ee3be2.png

targetDir下有两个空目录

12d25310ebf64c493f3891b4b81f8465.png

copyDir 下有两个等待复制的目标文件

5b643aec4cbb9bc789b04da25b79dfea.png

本次测试的目的:

将copyDir下的两个目录,完成的复制到targetDir下的两个空目录中

4、代码构成

classfileObj{/**

* [allCopy description] 将源目录的文件复制到目标目录的所有子文件夹上

* @param [type] $rootDir [description] 目标目录

* @param [type] $resouceDir [description] 源目录

* @return [type] [description]

*/publicfunctionallCopy($rootDir,$resouceDir){//如果有一个不是目录,则结束if(is_dir($rootDir)&&is_dir($resouceDir)){$this->preDir($rootDir,$resouceDir);}else{echo '所选择目录不是有效目录';}}/**

* [preDir description] 复制前对目标目录的预处理

* @param [type] $rootDir [description] 目标目录

* @param [type] $resouceDir [description] 源目录

* @return [type] [description]

*/privatefunctionpreDir($rootDir,$resouceDir){$dh =opendir($rootDir);//打开目标目录while($handle =readdir($dh)){//每个目录都含有上级目录和本级目录的标志if($handle =='.'||$handle =='..'){continue;}$targetDir =$rootDir.'/'.$handle;//需要加上根目录echo $targetDir;if(is_dir($targetDir)&&!$this->sizeofDir($targetDir)){continue;//这里不处理非空目录,自动过滤非目录}echo 1;$this->startCopy($targetDir,$resouceDir);}closedir($dh);}/**

* [startCopy description] 进行文件的复制操作

* @param [type] $targetDir [description] 目标目录

* @param [type] $resouceDir [description] 源目录子目录

* @return [type] [description]

*/privatefunctionstartCopy($targetDir,$resouceDir){$dh =opendir($resouceDir);//扫描源目录while($handle =readdir($dh)){// .和..不进行处理if($handle =='.'||$handle =='..'){continue;}$newResource =$resouceDir.'/'.$handle;//如果是目录,则需要创建相同目录,进行复制if(is_dir($newResource)){$newTargetDir =$this->createDir($targetDir,$handle);$this

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值