php递归删除目录下的文件但保留的实例分享

用php程序删除目录和文件比到ftp删除有很多优势。首先进ftp就比较麻烦,然后删除大量文件的时候ftp删除很慢,还有就是程序只想删除文件夹下面的文件,而保留目录结构,可以用php来轻松的实现,再有比如生成的日志、缓存要清除用程序来完成显然轻松的多。

一:删除目录下面的文件,不删除目录



代码如下:

function delFileUnderDir( $dirName ){ 
 if ( $handle = opendir( "$dirName" ) ) { 
   while ( false !== ( $item = readdir( $handle ) ) ) { 
    if ( $item != "." && $item != ".." ) { 
     if ( is_dir( "$dirName/$item" ) ) { 
      delFileUnderDir( "$dirName/$item" ); 
     } else { 
      if( unlink( "$dirName/$item" ) ) echo "已删除文件:$dirName/$item<br />\n"; 
     } 
    } 
   } 
   closedir( $handle ); 
 } 
}

二:删除目录及目录下所有的文件



代码如下:

function delDirAndFile( $dirName ){ 
 if ( $handle = opendir( "$dirName" ) ) { 
   while ( false !== ( $item = readdir( $handle ) ) ) { 
    if ( $item != "." && $item != ".." ) { 
     if ( is_dir( "$dirName/$item" ) ) { 
       delDirAndFile( "$dirName/$item" ); 
      } else { 
       if( unlink( "$dirName/$item" ) )echo "已删除文件: $dirName/$item<br />\n"; 
      } 
    } 
   } 
   closedir( $handle ); 
   if( rmdir( $dirName ) ) echo "成功删除目录: $dirName<br />\n"; 
 } 
}

(0)

相关推荐

  • rrmdir php中递归删除目录及目录下的文件

    复制代码 代码如下: function rrmdir($dir) { if (is_dir($dir)) { $objects = scandir($dir); foreach ($objects as $object) { if ($object != "." && $object != "..") { if (filetype($dir."/".$object) == "dir") rrmdir($dir.

  • php递归调用删除数组空值元素的方法

    本文实例讲述了php递归调用删除数组空值元素的方法.分享给大家供大家参考.具体如下: 该函数可以删除数组里的所有空值元素,包含空字符串,空的数组等等. function array_remove_empty($arr){ $narr = array(); while(list($key, $val) = each($arr)){ if (is_array($val)){ $val = array_remove_empty($val); // does the result array conta

  • php递归遍历删除文件的方法

    本文实例讲述了php递归遍历删除文件的方法.分享给大家供大家参考.具体如下: 这个函数稍加修改就可以变成一个递归文件拷贝函数 <?php function mover($src,$dst) { $handle=opendir($src); // Opens source dir. if (!is_dir($dst)) mkdir($dst,0755); // Make dest dir. while ($file = readdir($handle)) { if (($file!=".&q

  • php利用递归实现删除文件目录的方法

    直接删除目录,如果是空目录是可以删除,如果不是空目录,这时候只能先删除目录里面的文件,然后再删除目录.我封装了个删除函数,然后直接调用这个函数.喜欢的可以直接拿去用,编码是gbk的,使用时候注意下编码. <?php /** * Created by PhpStorm. * User: Administrator * Date: 2016/9/10 0010 * Time: 20:27 */ //删除文件,先删除文件内部的文件,再删除文件夹 header("Content-type: tex

  • php递归删除指定文件夹的方法小结

    本文实例总结了两种php递归删除指定文件夹的方法.分享给大家供大家参考.具体如下: 方法一: function recursiveDelete($dir) { if ($handle = @opendir($dir)) { while (($file = readdir($handle)) !== false) { if (($file == ".") || ($file == "..")) { continue; } if (is_dir($dir . '/' .

  • php创建和删除目录函数介绍和递归删除目录函数分享

    mkdir() - 新建目录 复制代码 代码如下: – 语法:bool mkdir (string pathname [,int mode]) – 尝试新建一个由 pathname 指定的目录. rmdir() - 删除目录 复制代码 代码如下: – 语法:bool rmdir ( string dirname ) – 尝试删除 dirname 所指定的目录. 该目录必须是空的,而且要有相应的权限.如果成功则返回 TRUE,失败则返回 FALSE. unlink - 删除文件 复制代码 代码如下

  • php递归创建和删除文件夹的代码小结

    第一种方法: 复制代码 代码如下: <?php /** * 目录生成类 :UtilsMakeDir * @author yepeng * @since 2010.3.18 */ class UtilsMakeDir{ //基目录 建立目录时不会对这个目录进行建立.这应该是个已经存在的目录 private static $makeBasePath = 'video'; private static $delBasePath = 'video'; /** * 递归建立目录, * 建立成功返回这个全路

  • php实例分享之通过递归实现删除目录下的所有文件详解

    先贴代码: 复制代码 代码如下: <?phpfunction delFile($dirName){  if ($handle = opendir("$dirName")){  while (($item = readdir($handle))!=false){   if ($item!="." && $item!="..")  {    if ( is_dir( "$dirName/$item" ) )

  • php递归删除目录与文件的方法

    本文实例讲述了php递归删除目录与文件的方法.分享给大家供大家参考.具体实现方法如下: <?php function deldir($path){ $dh = opendir($path); var_dump(readdir($dh)); while(($d = readdir($dh)) !== false){ if($d == '.' || $d == '..'){//如果为.或.. continue; } $tmp = $path.'/'.$d; if(!is_dir($tmp)){//如

  • php实现用于删除整个目录的递归函数

    本文实例讲述了php实现用于删除整个目录的递归函数.分享给大家供大家参考.具体实现方法如下: <?php function delete_directory($dir) { if ($dh = @opendir($dir)) { while (($file = readdir ($dh)) != false) { if (($file == ".") || ($file == "..")) continue; if (is_dir($dir . '/' . $

随机推荐