php 用rename移动或复制文件(文件夹)要比copy高效

2015年11月20日 11:49 by:唠吧小站

php 复制或移动文件或文件夹有的朋友用copy,unlink来移动, 但是对于大文件能会消耗很长时间, 建议使用php的 rename 函数.  

rename几种常见情况:

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

2. 对于空文件夹,rename也可以在不同盘符之间移动. 但是目标文件夹的父目录必须存在(要做判断如果不存在就要先建文件夹).

3. 对于非空文件夹, 只能在同一盘符下移动.

不过,1和3,应该差不多能够对付所有的应用情况了.

  1. <?php
  2. rename("D:/logs/write/theme/history","F:/logs/write/theme/history");
  3. ?>
 

经测试过, 一个40M的文件, copy+unlink方式需要7.6249899864197秒

而rename方式,只需要0.024738788604736,快300倍.

因此,谨慎使用copy+unlink方式.