zoukankan      html  css  js  c++  java
  • scandir

    定义和用法

    scandir() 函数返回一个数组,其中包含指定路径中的文件和目录。

    若成功,则返回一个数组,若失败,则返回 false。如果 directory 不是目录,则返回布尔值 false 并生成一条 E_WARNING 级的错误。

    语法

    scandir(directory,sort,context)
    参数描述
    directory 必需。规定要扫描的目录。
    sort 可选。规定排列顺序。默认是 0 (升序)。如果是 1,则为降序。
    context 可选。规定目录句柄的环境。context 是可修改目录流的行为的一套选项。

    例子

    <?php
    print_r(scandir("images"));
    ?> 
    

      

    输出:

    Array
    (
    [0] => .
    [1] => ..
    [2] => dog.jpg
    [3] => house.jpg
    [4] => logo.gif
    )
    

      

    php 删除空目录及空子目录

    步骤:

    1.遍历目录及子目录

    2.使用 scandir 判断目录是否为空,为空则使用rmdir 删除。

    [php]
     
    <?php  
    /** 删除所有空目录 
    * @param String $path 目录路径 
    */  
    function rm_empty_dir($path){  
        if(is_dir($path) && ($handle = opendir($path))!==false){  
            while(($file=readdir($handle))!==false){     // 遍历文件夹  
                if($file!='.' && $file!='..'){  
                    $curfile = $path.'/'.$file;          // 当前目录  
                    if(is_dir($curfile)){                // 目录  
                        rm_empty_dir($curfile);          // 如果是目录则继续遍历  
                        if(count(scandir($curfile))==2){ // 目录为空,=2是因为. 和 ..存在  
                            rmdir($curfile);             // 删除空目录  
                        }  
                    }  
                }  
            }  
            closedir($handle);  
        }  
    }  
      
    $folder = '目标文件夹';  
      
    rm_empty_dir($folder);  
    ?>  
    

      

    使用 shell 则简单很多:

    [plain]
     find 目标文件夹 -mindepth 1 -depth -empty -type d -exec rm -r {} ; 
  • 相关阅读:

    决斗(Headshot )
    密码(Password)
    线性表
    hdu 5409 CRB and Graph(边双联通分量)
    无向图的边双连通分量(EBC)
    hdu 3461 Code Lock 并查集(有点难想到)★★
    hdu 1558 Segment set 计算几何+并查集★
    交表(Send a Table)
    杨辉三角与二项式定理
  • 原文地址:https://www.cnblogs.com/examine/p/4775885.html
Copyright © 2011-2022 走看看