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("路径");
    

      

  • 相关阅读:
    3Dtouch 的实际应用详解(tableView中的应用)
    使用UIScrollView的zoomscale实现图片捏合放大
    SVN命令使用详解
    参数传递
    cookie文件路径
    XML和HTML之间的差异
    cssSelector元素定位方法
    如何调用一个数据完整的firefox浏览器
    Android生命周期详解
    android 利用countDownLatch实现主线程与子线程之间的同步
  • 原文地址:https://www.cnblogs.com/cyrfr/p/6288103.html
Copyright © 2011-2022 走看看