zoukankan      html  css  js  c++  java
  • php获取指定目录下的所有文件列表

    在我们实际的开发需求中,经常用到操作文件,今天就讲一下关于获取指定目录下的所有文件的几种常用方法:

    1、scandir()函数

    scandir() 函数返回指定目录中的文件和目录的数组。

    scandir(directory,sorting_order,context); 
    参数描述
    directory 必需。规定要扫描的目录。
    sorting_order

    可选。规定排列顺序。默认是 0,表示按字母升序排列。

    如果设置为 SCANDIR_SORT_DESCENDING 或者 1,则表示按字母降序排列。

    如果设置为 SCANDIR_SORT_NONE,则返回未排列的结果。

    context 可选。规定目录句柄的环境。context 是可修改目录流的行为的一套选项。

    若成功则返回文件和目录的数组。失败则返回 FALSE。

    如果 directory 不是目录,则抛出 E_WARNING 级别的错误。

    假如有如下目录结构:

    在sf.php写入代码如下:

    <?php  
    //获取当前文件所在的绝对目录
    $dir =  dirname(__FILE__);
    //扫描文件夹
    $file = scandir($dir);
    //显示
    echo " <pre>";
    print_r($file);
    
    ?>

    显示如下图所示:

    2、使用opendir、readdir、closedir

    opendir() 函数打开一个目录句柄,若成功,则该函数返回一个目录流,否则返回 false 以及一个 error。可以通过在函数名前加上 "@" 来隐藏 error 的输出。

    readdir() 函数返回由 opendir() 打开的目录句柄中的条目。若成功,则该函数返回一个文件名,否则返回 false。

    closedir — 关闭目录句柄。

    代码如下:

    <?php  
    //取得当前文件所在目录
    $dir  =  dirname(__FILE__);
     //判断目标目录是否是文件夹
            $file_arr = array();
            if(is_dir($dir)){
                //打开
                if($dh = @opendir($dir)){
                    //读取
                  
                    while(($file = readdir($dh)) !== false){
    
                        if($file != '.' && $file != '..'){
      
                            $file_arr[] = $file;
                        }
    
                    }
                    //关闭
                    closedir($dh);
                }
    }
    ?>
    echo "<pre>";
    print_r($file);

    结果如图:

  • 相关阅读:
    关于Class.forName(“com.mysql.jdbc.Driver”)
    Vector既然继承了AbstractList为啥还要实现List接口
    推荐两个支持Java的云主机空间
    关于“Return empty arrays or collections, not nulls”的思考
    "win7回收站已损坏"解决方法
    ibatis中使用like模糊查询
    当你升级到ubuntu12.04之后
    转一篇:如何快速的修改参考文献
    Java Annotations初探
    用eclipse开发android,xmllayout文件不自动提示,Java代码可以自动提示
  • 原文地址:https://www.cnblogs.com/imnzq/p/6796752.html
Copyright © 2011-2022 走看看