php移动代码,php移动文件夹和文件程序代码

php中移动复制文件我们使用copy,下面我们来看一个简单的实例,他实现了目录与目录文件移动,希望此文章对大家帮助。

方法一,copy+unlink方式

我的思路是:移动=新建+删除。在移动之前在目标的目录新建一个文件夹,然后在把文件和目录都复制过去,最后在执行删除.. [1] => .. [2] => a [3] => b [4] => c [5] => dir [6] => dir.php [7] => dir2 [8] => dir2.php [9] => function_file.php [10] => homework.php )

可以看到scandir这个函数会输出2个多余的值: [0] => . [1] => ..在这对我们木有用.写一个if干掉他们。

*/

foreach ($files as $file) { //对 $files数组进行遍历,方便对数组里面的文件夹和文件进行复制和删除.

if (in_array($file, array(

'.',

'..'

))) { // array('.','..')新建了一个只有.和..的数组,并且查找$file里面知否有.和..这2个值

continue;

}

$subFrom = $from . '/' . $file; //把遍历后的文件夹或者文件名变成一个新的路径

$subTo = $to . '/' . $file;

if (is_dir($subFrom)) {

@mkdir($subTo); //判断$subFrom是不是一个目录,如果是目录就在目标的目录下面,新建一个目录

moveDir($subFrom, $subTo); //递归执行新建目录。

} else { //不是目录的话,就直接复制文件.复制完就删除文件.

copy($subFrom, $subTo);

unlink($subFrom); //删除所有文件

}

@rmdir($subFrom); //删除所有的目录

}

return true;

}

?>

moveDir('C:/Users/Administrator/Desktop/0704','e:');//在这传递你要移动的文件或者目录的地址

方法二,rename

1.对于文件,rename可以在不同盘符之间移动.

2.对于空文件夹,rename也可以在不同盘符之间移动.但是目标文件夹的父目录必须存在.

3.对于非空文件夹,只能在同一盘符下移动.不过,1和3,应该差不多能够对付所有的应用情况了.

对于一个40M的文件,copy+unlink方式需要7.6249899864197秒,而rename方式,只需要0.024738788604736,快300倍.

文章链接:

随便收藏,请保留本文地址!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值