php如何实现文件或文件夹的移动?可能有的朋友会想当然的认为可以使用文件上传函数move_uploaded_file,其实该函数并不能实现文件的移动。

php要实现文件或文件夹的移动,可以使用copy和un 函数,或者是使用rename函数。请看下面具体实现方法。

 

php使用copy和un 函数函数移动文件

先简单介绍copy函数和un 函数:

copy — 拷贝文件

语法:

bool copy ( string $source , string $dest [, resource $context ] )

将文件从 source 拷贝到 dest

 

un — 删除文件

语法:

bool un  ( string $filename [, resource $context ] )

删除 filename。和 Unix C 的 un () 函数相似。 发生错误时会产生一个 E_WARNING 级别的错误。

 

下面来看一下如何使用copy和un 实现文件的移动

<?php
$file=\'userfile/a/abc.txt\'; //旧目录
$newFile=\'userfile/b/newabc.txt\'; //新目录
copy($file,$newFile); //拷贝到新目录
/* http://www.manongjc.com/article/1303.html */
un ($file); //删除旧目录下的文件
?>

 

php使用rename函数移动文件

php参考手册上是这样介绍rename函数的:

rename — 重命名一个文件或目录

语法

bool rename ( string $oldname , string $newname [, resource $context ] )

尝试把 oldname 重命名为 newname

参数

  1. oldname 用于 oldname 中的封装协议必须和用于 newname 中的相匹配。
  2. newname 新的名字。
  3. context 在 PHP 5.0.0 中增加了对上下文(Context)的支持。

rename用于移动文件或文件夹,实例如下:

rename(\"/tmp/www.txt\", \"/home/my_file.txt\");

第一个参数放原地址,第二个参数放目标地址。

 

小结

上面两种方法都可以实现移动文件,但从性能上讲,rename方法更好,因为rename简单、方便、快捷,而且对于大文件,第一种方法可能会消耗很长时间。

收藏 打印