1.前言
目标:php删除指定的目录
使用的Php函数:is_dir、opendir、readdir、scandir、rmdir、closedir等。(注意:其他文件操作功能也可以完成,这里只列出这次使用的功能)
2.相关功能介绍
php文件的操作方法大致相同,上一篇文章已经介绍过了,这里就不重复了,在这里介绍一个新的函数
删除目录
详情请参考http://www.w3school.com.cn/php/func_filesystem_rmdir.asp
3.代码组成
** * [delAllFile description]删除记录在指定目录* @ param[type]$ dirname[description]目录* @ param[type]$ file[description]* @ param integer $ type[description]首次默认打开一个新文件,但第二次调用时不打开* @ return[type][description]*/public函数delalfile ($ dirname,$ file,$ type=1){ $ re=$ this-checkdir($ dirname);//如果($type){ $file=fopen($file,' w '),默认第一次打开文件;//打开日志文件} if($ re){ $ this-delfile($ dirname,$ file);}else{ fwrite($file,' {$dirName}清理完成 r n ');}}/** * [checkDir description]检查文件夹是否为空,如果为空,则删除* @ param[type]$ dirname[description]文件夹名称* @ return[type][description]*/private函数CheckDir($ dirname){ $ a=scandir($ dirname);//列出图像目录中的文件和目录://仅包含的文件夹。和.如果(sizeof ($ a)==2) {rmdir ($ dirname),则目录为空;返回false}返回true}/** * [delFile description]上传文件的方法* @ param[type]$ dirName[description]目录* @ param[type]$ file[description]记录的文件* @ return[type][description]*/private函数delFile($dirName,$ file){ $ DH=OpenDiR($ DirName);while($ handle=readdir($ DH)){ if($ handle==' . '|| $handle==' . '){继续;} $resource=$dirName。'/'.$ handle//判断是否是文件夹if(is_dir($resource)) {//判断文件夹是否为空$ re=$ this-checkDir($ dirName);if($ re){ $ this-delAllFile($ resource,$file,0);} else {fwrite ($ file,{$ resource}清理完成 r n ');继续;} } else { unlink($ resource);} }//关闭资源,删除目录closedir($ DH);//关闭目录资源fwrite($file,' {$dirName}清理完成 r n ');rmdir($ DirNAmE);//删除空目录}但是,当上述代码遇到高层次的子目录时,很容易出现警告,导致目录无法删除
因此,对于级别较高的子集,需要在末尾增加一个循环判断,判断是否可以删除,以避免这种错误
////关闭资源并删除目录//closedir($ DH);//关闭目录资源//fwrite($file,' {$dirName}清理完成 r n ');//rmdir($ DirNAmE);//删除一个空目录//每次目录级别高的时候,都会报错,所以增加一个循环来处理$ I=1;while($ I){ $ re=$ this-CheckDir($ DirName);echo ' $ DirName $ I times br/HR/';$ I;if(!$ re){ $ I=0;close dir($ DH);//关闭目录资源fwrite($file,' {$dirName}清理完成 r n ');}}添加此图层可以避免无法删除的情况(有时是权限问题)
4.结论
删除目录相对简单。基本步骤如下:
1.判断是否是目录,如果是目录,递归调用自己,否则直接删除文件;
2.确定目录是否为空。如果不为空,rmdir将抛出一个错误;
3.文件权限的问题(窗口,这不是问题)
以上php中删除指定文件夹的例子是边肖分享的全部内容,希望能给大家一个参考和支持。