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文件及文件夹操作之创建、删除、移动、复制,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-09-20 05:13:49

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

centos系统文件与文件夹操作(新建、删除、移动)

1.新建文件夹 mkdir 文件名 新建一个名为test的文件夹在home下 1 mkdir /home/test 2.新建文本 在home下新建一个test.sh脚本 1 vi /home/test.sh 3.删除文件或文件夹 删除home目录下的test目录 1 rm /home/test 这种不带参数的删除方法经常会提示无法删除,因为权限不够. 1 rm -r /home/test -r是递归的删除参数表中的目录及其子目录. 目录将被清空并且删除. 当删除目录包含的具有写保护的文件时用户通

ASP入门教程-文件夹操作

文件夹操作主要包括创建.复制.移动和删除文件夹,检查文件夹是否存在以及指定路径中某文件夹中相应的文件对象.完成这些操作可以使用 FileSystemObjec对象或 Folder 对象的方法. 一.使用 FileSystemObject 对象的相应方法进行文件夹进行操作 1.使用 FileSystemObject 对象创建文件夹时,先要创建 FileSystemObject 对象,再使用它的 CreateFolder 方法创建文件夹对象,其语法格式如下: fso.CreateFolder(fol

C# 文件操作之创建文件夹

本文章主要是讲述C#中文件操作的基础知识,如何创建文件夹.创建文件.介绍Directory类\DirectoryInfo类和使用FolderBrowserDialog组件(文件夹对话框).文章属于基础知识,参考了书籍刘丽霞<C#范例开发大全>,希望对大家有用! 一.界面设计 创建的C# Windows窗体应用程序,界面设计如下添加Lable控件.TextBox控件(其中textBox1可设置属性为只读).Button控件和FolderBrowserDialog组件(文件夹对话框),点击&quo

asp.net文件与文件夹操作类(文件删除,创建,目录删除)

下面这个文件操作类,可以删除目录并且不为空的目录哦,也可以创建文件写文件,删除文件以前递归操作目录. using system.io; using system.web; namespace sec {     /**////     /// 对文件和文件夹的操作类     ///     public class filecontrol     {          public filecontrol()          {          }          /**////     

C#文件与文件夹操作(创建、移动、删除、复制)

//1.---------文件夹创建.移动.删除--------- //创建文件夹  代码如下 复制代码 Directory.CreateDirectory(Server.MapPath("a")); Directory.CreateDirectory(Server.MapPath("b")); Directory.CreateDirectory(Server.MapPath("c")); //移动b到a Directory.Move(Serve

ASP编程入门进阶(十七):FSO组件之文件夹操作

fso|编程|fso 操作完驱动器,接着就是来操作文件夹了.其中包括:提取文件夹信息.创建文件夹.删除文件夹.复制文件夹.移动文件夹等.下面就具体来看. 一.fso.GetFolder一看就明白,是提取文件夹了.那具体是提取哪个文件夹呢?后面肯定要跟一个文件夹的路径.提取出来了再来显示该文件夹相关信息呢?是不是有要具体提取下去.所以,看程序:1,getfldr.asp <%Set fso = CreateObject("Scripting.FileSystemObject")Se

深入学习ASP动态网页技术之FSO组件之文件夹操作

fso|动态|网页 操作完驱动器,接着就是来操作文件夹了.其中包括:提取文件夹信息.创建文件夹.删除文件夹.复制文件夹.移动文件夹等.下面就具体来看. 一.fso.GetFolder 一看就明白,是提取文件夹了.那具体是提取哪个文件夹呢?后面肯定要跟一个文件夹的路径.提取出来了再来显示该文件夹相关信息呢?是不是有要具体提取下去.所以,看程序: 1,getfldr.asp <%Set fso = CreateObject("Scripting.FileSystemObject")S

FSO组件之文件夹操作

操作完驱动器,接着就是来操作文件夹了.其中包括:提取文件夹信息.创建文件夹.删除文件夹.复制文件夹.移动文件夹等.下面就具体来看. 一.fso.GetFolder 一看就明白,是提取文件夹了.那具体是提取哪个文件夹呢?后面肯定要跟一个文件夹的路径.提取出来了再来显示该文件夹相关信息呢?是不是有要具体提取下去.所以,看程序: 1,getfldr.asp <%Set fso = CreateObject("Scripting.FileSystemObject")Set fldr =