zoukankan      html  css  js  c++  java
  • 文件遍历及文件夹的删除

    文件遍历有两种方法,一种使用glob函数以数组的形式取到指定目录下的文件;另一种是用opendir与closedir通过打开关闭资源的方法用readdir

    函数取到所有文件,但是通过这种方法会取到“.”与“..”两个文件,这两个会返回上级目录,遍历时应跳过这两项。

    1.利用glob函数遍历文件,并用filesize()函数取到制定目录下文件的总大小:

    function ShuLiang($filename)
    {
    		$attr = glob($filename."/*");    //取到所有文件
    		$size = 0;
    		
    		foreach($attr as $v)
    		{
    			if(is_dir($v))                     //如果是文件夹,用递归的方法回调。
    			{
    				$size += ShuLiang($v);
    			}
    			else
    				{
    					$size += filesize($v);
    				}
    		}	
    		
    		return $size;
    }
    echo ShuLiang("路径");
    ?>    
    

      

    2.是用opendir与closedir通过打开关闭资源的方法用readdir函数取到所有文件,同样取文件总大小:

    function Fsize($fname)
    {
    	$size = 0;
    	$dir = opendir($fname);         //打开资源
    	
    	//遍历目录,找到文件,累加大小
    	while($u = readdir($dir))
    	{
    		if($u!="." && $u!="..")
    		{
    			$zfname = $fname."/".$u;
    			if(is_dir($zfname))
    			{
    				$size += Fsize($zfname);       //用递归回调
    			}
    			else
    			{
    				$size += filesize($zfname);
    			}
    		}
    	}
    	
    	closedir($dir);     //关闭资源
    	return $size;
    }
    
    echo Fsize("路径");
    

      

    结果正确。

     

     文件夹删除

    没有直接删除文件夹的函数,但是有删除文件的函数unlink()与删除空文件夹的函数rmdir(),同样运用递归遍历到所有文件都删除掉,最后删除这个空文件夹:

    function ShanChu($fname)
    {
    	//遍历该文件夹,找到所有文件删除
    	$dir = opendir($fname);
    	while($n = readdir($dir))
    	{
    		if($n!="." && $n!="..")
    		{
    			$zname = $fname."/".$n;
    			if(is_file($zname))
    			{
    				unlink($zname);
    			}
    			else
    			{
    				ShanChu($zname);
    			}
    		}
    	}
    	closedir($dir);
    
    	//删除文件夹
    	rmdir($fname);
    }
    
    ShanChu("路径");
    

      

  • 相关阅读:
    19.Mybatis之动态SQL
    18.Mybatis的配置文件标签属性自动提示
    17.Mybatis的基本使用及入门案例
    16.jQuery属性操作
    15.jQuery淡入淡出效果
    14.jQuery常用方法
    13.jQuery选择器
    12.JavaScript基础知识
    11.浅析Java中的final关键字
    10.基于Tomcat的SmartUplaod文件上传
  • 原文地址:https://www.cnblogs.com/cyrfr/p/6288103.html
Copyright © 2011-2022 走看看