php获取目录下所有文件及目录(多种方法)(推荐)

获取某目录下所有子文件和子目录

function getDirContent($path){
  if(!is_dir($path)){
    return false;
  }
  //readdir方法
  /* $dir = opendir($path);
  $arr = array();
  while($content = readdir($dir)){
    if($content != '.' && $content != '..'){
      $arr[] = $content;
    }
  }
  closedir($dir); */

  //scandir方法
  $arr = array();
  $data = scandir($path);
  foreach ($data as $value){
    if($value != '.' && $value != '..'){
      $arr[] = $value;
    }
  }
  return $arr;
}

下面介绍的三种方法,是获取某个目录下所有的目录(包括子目录,子孙目录)和文件,直到最里层

方法一

function searchDir($path,&$files){

  if(is_dir($path)){

    $opendir = opendir($path);

    while ($file = readdir($opendir)){
      if($file != '.' && $file != '..'){
        searchDir($path.'/'.$file, $files);
      }
    }
    closedir($opendir);
  }
  if(!is_dir($path)){
    $files[] = $path;
  }
}
//得到目录名
function getDir($dir){
  $files = array();
  searchDir($dir, $files);
  return $files;
}
$filenames = getDir('lss');

foreach ($filenames as $value){
  echo $value.'<br/>';
}

方法二:

function getDir($path){

  if(is_dir($path)){

    $dir = scandir($path);
    foreach ($dir as $value){
      $sub_path =$path .'/'.$value;
      if($value == '.' || $value == '..'){
        continue;
      }else if(is_dir($sub_path)){
        echo '目录名:'.$value .'<br/>';
        getDir($sub_path);
      }else{
        //.$path 可以省略,直接输出文件名
        echo ' 最底层文件: '.$path. ':'.$value.' <hr/>';
      }
    }
  }
}
$path = 'lss';
getDir($path);

方法三:

function getDir($path){
  $arr = array();
    $arr[] = $path;
  if(is_file($path)){

  }else{
    if(is_dir($path)){
      $data = scandir($path);
      if(!empty($data)){
        foreach ($data as $value){
          if($value != '.' && $value != '..'){
            $sub_path = $path."/".$value;
            $temp = getDirContent($sub_path);
            $arr = array_merge($temp,$arr);
          }
        }

      }
    }
  }

  return $arr;
}
$path = 'lss';
var_dump(getDir($path));

以上所述是小编给大家介绍的php获取目录下所有文件及目录多种方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • php使用glob函数快速查询指定目录文件的方法

    本文实例讲述了php使用glob函数快速查询指定目录文件的方法.分享给大家供大家参考.具体如下: php搜索当前目录所有文件,代码如下: 复制代码 代码如下: $array = glob('*.*'); print_r($array );    /* Array (     [0] => 1.php     [1] => 10.php     [2] => 11.php     [3] => 2.asp     [4] => 3.asp     [5] => 4.asp

  • php实现统计目录文件大小的函数

    早上刚到公司,头告诉我,抓紧写一个小函数,用来统计指定目录中文件大小,我了个去,动手吧,还好有点小基础,一会就完工了,哈哈.代码在下面咯. <? /** 统计目录文件大小的函数 @author xfcode */ function dirsize($dir) { @$dh = opendir($dir); $size = 0; while ($file = @readdir($dh)) { if ($file != "." and $file != "..")

  • php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码

    web 开发中我们可能会碰到需要将某个目录下的所有文件清空,但不删除这个目录下的子目录(当然也不会删除被删除的根目录)的情况.那么对于这种只删除文件而不删除目录的方法,你是如何处理的呢?下面博主将要和你分享一下对于这个问题的一种比较好的解决办法.看下面这个函数: /*删除指定目录下的文件,不删除目录文件夹*/ function delFile($dirName){ if(file_exists($dirName) && $handle=opendir($dirName)){ while(f

  • PHP超低内存遍历目录文件和读取超大文件的方法

    这不是一篇教程,这是一篇笔记,所以我不会很系统地论述原理和实现,只简单说明和举例. 前言 我写这篇笔记的原因是现在网络上关于 PHP 遍历目录文件和 PHP 读取文本文件的教程和示例代码都是极其低效的,低效就算了,有的甚至好意思说是高效,实在辣眼睛. 这篇笔记主要解决这么几个问题: PHP 如何使用超低内存快速遍历数以万计的目录文件? PHP 如何使用超低内存快速读取几百MB甚至是GB级文件? 顺便解决哪天我忘了可以通过搜索引擎搜到我自己写的笔记来看看.(因为需要 PHP 写这两个功能的情况真的

  • PHP遍历目录文件的常用方法小结

    本文实例总结了PHP遍历目录文件的常用方法.分享给大家供大家参考,具体如下: 测试算法(源代码经过本站工具http://tools.jb51.net/code/jb51_php_format进行格式化处理,以便于读者阅读) 算法1.简短系 foreach(glob('*.*') as $filename) { echo 'Filename:'.$filename.; } 算法2.规矩系 if($handle = opendir('C:\\Inetpub\\wwwroot\\test\\')){

  • jsp编程获取当前目录下的文件和目录及windows盘符的方法

    本文实例讲述了jsp编程获取当前目录下的文件和目录及windows盘符的方法.分享给大家供大家参考,具体如下: (一)获取当前目录下的文件和目录 知识点 1 file对象的应用 2 listFiles()方法 3 isDirectory()方法,isFile()方法 判断是否为目录或是文件 4转换字符串方法toString (1)创建一个file对象dir, 然后用listFiles()方法返回当前目录下所有文件 String path=request.getRealPath("/")

  • php获取目录下所有文件及目录(多种方法)(推荐)

    获取某目录下所有子文件和子目录 function getDirContent($path){ if(!is_dir($path)){ return false; } //readdir方法 /* $dir = opendir($path); $arr = array(); while($content = readdir($dir)){ if($content != '.' && $content != '..'){ $arr[] = $content; } } closedir($dir

  • Golang获取目录下的文件及目录信息操作

    一.获取当前目录下的文件或目录信息(不包含多级子目录) func main() { pwd,_ := os.Getwd() //获取文件或目录相关信息 fileInfoList,err := ioutil.ReadDir(pwd) if err != nil { log.Fatal(err) } fmt.Println(len(fileInfoList)) for i := range fileInfoList { fmt.Println(fileInfoList[i].Name()) //打印

  • python列出目录下指定文件与子目录的方法

    本文实例讲述了python列出目录下指定文件与子目录的方法.分享给大家供大家参考.具体实现方法如下: # if you know the exact name: import os files = os.listdir('/path/to/dir/') # if you want shell-style globbing: import glob files = glob.glob('/path/to/dir/*.html') 希望本文所述对大家的Python程序设计有所帮助.

  • nodejs 递归拷贝、读取目录下所有文件和目录

    先给大家介绍下nodejs 递归拷贝目录下所有文件和目录,具体代码如下所示: var fs=require('fs'); var copy=function(src,dst){ let paths = fs.readdirSync(src); //同步读取当前目录 paths.forEach(function(path){ var _src=src+'/'+path; var _dst=dst+'/'+path; fs.stat(_src,function(err,stats){ //stats

  • python获取目录下所有文件的方法

    本文实例讲述了python获取目录下所有文件的方法.分享给大家供大家参考.具体分析如下: os.walk() 函数声明:walk(top,topdown=True,onerror=None) 1. 参数top表示需要遍历的目录树的路径 2. 参数topdown的默认值是"True",表示首先返回目录树下的文件,然后在遍历目录树的子目录.Topdown的值为"False"时,则表示先遍历目录树的子目录,返回子目录下的文件,最后返回根目录下的文件 3. 参数onerro

  • python 获取文件下所有文件或目录os.walk()的实例

    在python3.6版本中去掉了os.path.walk()函数 os.walk() 函数声明:walk(top,topdown=True,oneerror=None) 1.参数top表示需要遍历的目录树的路径 2.参数农户topdown默认是"True",表示首先返回根目录树下的文件,然后,再遍历目录树的子目录.topdown的值为"False",则表示先遍历目录树的子目录,返回子目录下的文件,最后返回根目录下的文件 3.参数oneerror的默认值是"

  • shell获取目录下所有文件夹的名称并输出的实例

    获取指定目录/usr/下所有文件夹的名称并输出: shell代码: #!/bin/bash #方法一 dir=$(ls -l /usr/ |awk '/^d/ {print $NF}') for i in $dir do echo $i done ####### #方法二 for dir in $(ls /usr/) do [ -d $dir ] && echo $dir done ##方法三 ls -l /usr/ |awk '/^d/ {print $NF}' ## 其实同方法一,直接

  • Python通过递归获取目录下指定文件代码实例

    这篇文章主要介绍了python通过递归获取目录下指定文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 获取一个目录下所有指定格式的文件是实际生产中常见需求. import os #递归获取一个目录下所有的指定格式的文件 def get_jsonfile(path,file_list): dir_list=os.listdir(path) for x in dir_list: new_x=os.path.join(path,x) if

  • VBS怎么获取指定目录下的文件列表

    VBS肿么获取某目录下的文件列表 dim FileName,fs,foldername foldername = InputBox("请输入想要在哪个文件夹查找", "VBS查找文件") If foldername = "" Then wscript.quit End If Set fs = CreateObject("scripting.filesystemobject") digui (foldername)'调用递归函数

随机推荐