温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP怎么对文件夹进行创建、删除、移动、复制操作

发布时间:2021-08-12 13:48:15 阅读:91 作者:chen 栏目:开发技术
PHP开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章主要介绍“PHP怎么对文件夹进行创建、删除、移动、复制操作”,在日常操作中,相信很多人在PHP怎么对文件夹进行创建、删除、移动、复制操作问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP怎么对文件夹进行创建、删除、移动、复制操作”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创建FileUtil.php文件,内容及调用方式如下:

<?php
/**
* 操纵文件类
* 
* 例子:
* FileUtil::createDir('a/1/2/3'); 测试建立文件夹 建一个a/1/2/3文件夹
* FileUtil::createFile('b/1/2/3'); 测试建立文件 在b/1/2/文件夹下面建一个3文件
* FileUtil::createFile('b/1/2/3.exe'); 测试建立文件 在b/1/2/文件夹下面建一个3.exe文件
* FileUtil::copyDir('b','d/e'); 测试复制文件夹 建立一个d/e文件夹,把b文件夹下的内容复制进去
* FileUtil::copyFile('b/1/2/3.exe','b/b/3.exe'); 测试复制文件 建立一个b/b文件夹,并把b/1/2文件夹中的3.exe文件复制进去
* FileUtil::moveDir('a/','b/c'); 测试移动文件夹 建立一个b/c文件夹,并把a文件夹下的内容移动进去,并删除a文件夹
* FileUtil::moveFile('b/1/2/3.exe','b/d/3.exe'); 测试移动文件 建立一个b/d文件夹,并把b/1/2中的3.exe移动进去 
* FileUtil::unlinkFile('b/d/3.exe'); 测试删除文件 删除b/d/3.exe文件
* FileUtil::unlinkDir('d'); 测试删除文件夹 删除d文件夹
*/
class FileUtil {
/**
* 建立文件夹
*
* @param string $aimUrl
* @return viod
*/
function createDir($aimUrl{
$aimUrl str_replace('''/'$aimUrl);
$aimDir '';
$arr explode('/'$aimUrl);
$result true;
foreach ($arr as $str) {
$aimDir .= $str '/';
if (!file_exists($aimDir)) {
$result mkdir($aimDir);
}
}
return $result;
}
/**
* 建立文件
*
* @param string $aimUrl 
* @param boolean $overWrite 该参数控制是否覆盖原文件
* @return boolean
*/
function createFile($aimUrl$overWrite false{
if (file_exists($aimUrl) && $overWrite == false) {
return false;
} elseif (file_exists($aimUrl) && $overWrite == true) {
FileUtil :: unlinkFile($aimUrl);
}
$aimDir dirname($aimUrl);
FileUtil :: createDir($aimDir);
touch($aimUrl);
return true;
}
/**
* 移动文件夹
*
* @param string $oldDir
* @param string $aimDir
* @param boolean $overWrite 该参数控制是否覆盖原文件
* @return boolean
*/
function moveDir($oldDir$aimDir$overWrite false{
$aimDir str_replace('''/'$aimDir);
$aimDir substr($aimDir, -1) == '/' ? $aimDir $aimDir '/';
$oldDir str_replace('''/'$oldDir);
$oldDir substr($oldDir, -1) == '/' ? $oldDir $oldDir '/';
if (!is_dir($oldDir)) {
return false;
}
if (!file_exists($aimDir)) {
FileUtil :: createDir($aimDir);
}
@ $dirHandle opendir($oldDir);
if (!$dirHandle) {
return false;
}
while (false !== ($file readdir($dirHandle))) {
if ($file == '.' || $file == '..') {
continue;
}
if (!is_dir($oldDir $file)) {
FileUtil :: moveFile($oldDir $file$aimDir $file$overWrite);
} else {
FileUtil :: moveDir($oldDir $file$aimDir $file$overWrite);
}
}
closedir($dirHandle);
return rmdir($oldDir);
}
/**
* 移动文件
*
* @param string $fileUrl
* @param string $aimUrl
* @param boolean $overWrite 该参数控制是否覆盖原文件
* @return boolean
*/
function moveFile($fileUrl$aimUrl$overWrite false{
if (!file_exists($fileUrl)) {
return false;
}
if (file_exists($aimUrl) && $overWrite false) {
return false;
} elseif (file_exists($aimUrl) && $overWrite true) {
FileUtil :: unlinkFile($aimUrl);
}
$aimDir dirname($aimUrl);
FileUtil :: createDir($aimDir);
rename($fileUrl$aimUrl);
return true;
}
/**
* 删除文件夹
*
* @param string $aimDir
* @return boolean
*/
function unlinkDir($aimDir{
$aimDir str_replace('''/'$aimDir);
$aimDir substr($aimDir, -1) == '/' ? $aimDir $aimDir '/';
if (!is_dir($aimDir)) {
return false;
}
$dirHandle opendir($aimDir);
while (false !== ($file readdir($dirHandle))) {
if ($file == '.' || $file == '..') {
continue;
}
if (!is_dir($aimDir $file)) {
FileUtil :: unlinkFile($aimDir $file);
} else {
FileUtil :: unlinkDir($aimDir $file);
}
}
closedir($dirHandle);
return rmdir($aimDir);
}
/**
* 删除文件
*
* @param string $aimUrl
* @return boolean
*/
function unlinkFile($aimUrl{
if (file_exists($aimUrl)) {
unlink($aimUrl);
return true;
} else {
return false;
}
}
/**
* 复制文件夹
*
* @param string $oldDir
* @param string $aimDir
* @param boolean $overWrite 该参数控制是否覆盖原文件
* @return boolean
*/
function copyDir($oldDir$aimDir$overWrite false{
$aimDir str_replace('''/'$aimDir);
$aimDir substr($aimDir, -1) == '/' ? $aimDir $aimDir '/';
$oldDir str_replace('''/'$oldDir);
$oldDir substr($oldDir, -1) == '/' ? $oldDir $oldDir '/';
if (!is_dir($oldDir)) {
return false;
}
if (!file_exists($aimDir)) {
FileUtil :: createDir($aimDir);
}
$dirHandle opendir($oldDir);
while (false !== ($file readdir($dirHandle))) {
if ($file == '.' || $file == '..') {
continue;
}
if (!is_dir($oldDir $file)) {
FileUtil :: copyFile($oldDir $file$aimDir $file$overWrite);
} else {
FileUtil :: copyDir($oldDir $file$aimDir $file$overWrite);
}
}
return closedir($dirHandle);
}
/**
* 复制文件
*
* @param string $fileUrl
* @param string $aimUrl
* @param boolean $overWrite 该参数控制是否覆盖原文件
* @return boolean
*/
function copyFile($fileUrl$aimUrl$overWrite false{
if (!file_exists($fileUrl)) {
return false;
}
if (file_exists($aimUrl) && $overWrite == false) {
return false;
} elseif (file_exists($aimUrl) && $overWrite == true) {
FileUtil :: unlinkFile($aimUrl);
}
$aimDir dirname($aimUrl);
FileUtil :: createDir($aimDir);
copy($fileUrl$aimUrl);
return true;
}
}
?>

另一种调用方式:

$fu new FileUtil();
$fu->copyFile('a/1/2/3''a/1/2/4');

到此,关于“PHP怎么对文件夹进行创建、删除、移动、复制操作”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI

开发者交流群×