使用php怎么删除指定的文件夹

  介绍

今天就跟大家聊聊有关使用php怎么删除指定的文件夹,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

<强> 1,前言

目标:php删除一个指定目录

所使用的的php函数:is_dir, opendir, readdir, scandir,删除目录,closedir,等等(注:其他文件操作函数也可以完成,这里只列举了本次使用的函数)

<强> 2,相关函数介绍

php文件操作的方法大致相同,已经在上一篇介绍过了,这里就不在重复介绍,这里就介绍一个新函数

<强>删除文件夹

使用php怎么删除指定的文件夹”> </p> <p>详情参考:http://www.w3school.com.cn/php/func_filesystem_rmdir.asp </p> <p> <强> 3代码构成</强> </p> <pre类= * *   ,* [delAllFile 描述],删除指定目录   ,* @param [型],dirName 美元;[描述],目录   ,* @param [型],file 美元;[描述],记录的过程文件   ,* @param  integer  type 美元;[描述],第一次默认打开新文件,第二次调用不打开   (类型),* @return ,,,(描述)   ,*/public  function  delAllFile(文件目录名美元,,,,type 美元;=,1),{   美元,美元re =,这→checkDir($目录名);   ,//默认第一次打开文件   ,如果美元(类型){   ,file 美元;=,fopen(文件,美元,& # 39;w # 39;);//打开日志文件   ,}   ,如果(re) {   ,$ this→delFile(目录名美元,,文件);   ,其他}{   美元,写入文件(文件,“{$目录名}清理完成\ r \ n");   ,}   } /* *   ,* [checkDir 描述),检测文件夹是否为空,为空直接删除   ,* @param [型],dirName 美元;[描述],文件夹名   (类型),* @return ,,,(描述)   ,*/private  function  checkDir(目录名),{   ,a 美元;=,scandir(目录名)美元;//列出,images 目录中的文件和目录:   ,//只包含。和. .目录的文件夹为空文件夹   ,如果(sizeof(美元),==,2){   ,删除目录(目录名);   ,return 假;   ,}   ,return 真实;   }/* *   ,* [delFile 描述),上传文件的方法   ,* @param [型],dirName 美元;[描述],目录   ,* @param [型],file 美元;[描述],记录的文件   (类型),* @return ,,,(描述)   ,*/private  function  delFile(目录名美元,,文件),{   ,dh 美元;=,openDir($目录名);   ,而(handle 美元;=,readdir (dh)美元){   ,如果(handle 美元==,& # 39;强生# 39;,| |,handle 美元;==,& # 39;. . & # 39;),{   ,继续;   ,}   美元,美元resource =,目录名# 39;公司/& # 39;美元处理;   ,//判断是否是文件夹   ,如果(is_dir(资源)美元),{   ,//判断文件夹是否为空   美元,美元re =,这→checkDir($目录名);   ,如果(re) {   美元,美元这→delAllFile(资源,,文件,美元,0);   ,其他}{   美元,写入文件(文件,“{$资源}清理完成\ r \ n");   ,继续;   ,}   ,其他}{   美元,拆开(资源);   ,}   ,}   ,   ,//关掉资源,删除目录   美元,closedir (dh);//关闭目录资源,   美元,写入文件(文件,“{$目录名}清理完成\ r \ n");   ,删除目录(目录名);//删除空目录,   }

然而,上面的代码遇到子目录层级高的时候,就容易出现一个警告,导致目录无法删除

使用php怎么删除指定的文件夹”> </p> <p>故对于层级高的子集,需要在最后加上一个循环判断,来判断是否可以删除,来避免这个错误</p> <pre类=//,//关掉资源,删除目录//,closedir (dh);//关闭目录资源,//,写入文件(文件“{$目录名}清理完成\ r \ n");//删除文件夹(目录名);//删除空目录,   ,//每次目录层级高了就报错,故加个循环处理   小姐:美元=,1;   (我){   美元,美元re =,这→checkDir($目录名);   dirName 美元,echo “小姐:次& lt; br/祝辞& lt;人力资源/在“;   美元,我+ +;   ,如果(! $ re) {   小姐:美元才能=,0;   ,,closedir (dh);//关闭目录资源,   写入文件才能($文件“{$目录名}清理完成\ r \ n");,,   ,}   }

加上这层可以避免无法删除的情况(有时候删不掉是权限的问题)

<强> 4,结语

删除一个目录相对比较简单,基本步骤为:

1,判断是否是目录,是目录则递归调用自己,否则直接删除文件;

使用php怎么删除指定的文件夹