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 {} ; 
  • 相关阅读:
    点击刷新验证码
    自定义shiro实现权限验证方法isAccessAllowed
    trackerClient.getConnection()为null
    spring boot集成FastDFS
    云服务器80端口无法访问
    linux搭建FastDFS文件服务器
    maven仓库有jar包还是报错怎么办?
    input表单强制大小写
    springboot集成freemarker静态资源无法访问
    idea 错误: 找不到或无法加载主类
  • 原文地址:https://www.cnblogs.com/examine/p/4775885.html
Copyright © 2011-2022 走看看