php如何实现文件或文件夹的移动?可能有的朋友会想当然的认为可以使用文件上传函数move_uploaded_file,其实该函数并不能实现文件的移动。
php要实现文件或文件夹的移动,可以使用copy和unlink函数,或者是使用rename函数。请看下面具体实现方法。
php使用copy和unlink函数函数移动文件
先简单介绍copy函数和unlink函数:
copy — 拷贝文件
语法:
bool copy ( string $source , string $dest [, resource $context ] )
将文件从 source 拷贝到 dest。
unlink — 删除文件
语法:
bool unlink ( string $filename [, resource $context ] )
删除 filename。和 Unix C 的 unlink() 函数相似。 发生错误时会产生一个 E_WARNING 级别的错误。
下面来看一下如何使用copy和unlink实现文件的移动
$file='userfile/a/abc.txt'; //旧目录
$newFile='userfile/b/newabc.txt'; //新目录
copy($file,$newFile); //拷贝到新目录
/* http://www.manongjc.com/article/1303.html */
unlink($file); //删除旧目录下的文件
?>
php使用rename函数移动文件
php参考手册上是这样介绍rename函数的:
rename — 重命名一个文件或目录
语法
bool rename ( string $oldname , string $newname [, resource $context ] )
尝试把 oldname 重命名为 newname。
参数
oldname用于 oldname 中的封装协议必须和用于 newname 中的相匹配。
newname 新的名字。
context在 PHP 5.0.0 中增加了对上下文(Context)的支持。
rename用于移动文件或文件夹,实例如下:
rename("/tmp/www.txt", "/home/my_file.txt");
第一个参数放原地址,第二个参数放目标地址。
小结
上面两种方法都可以实现移动文件,但从性能上讲,rename方法更好,因为rename简单、方便、快捷,而且对于大文件,第一种方法可能会消耗很长时间。