php遍历文件夹下的所有文件和子文件夹示例

遍历目录,结果存入数组。支持php4及以上。php5以后可用scandir()函数代替while循环。

代码如下:

<?php
/**
* @param string $dir
* @return array
*/
function my_scandir($dir)
{
 $files = array();
 if ( $handle = opendir($dir) ) {
  while ( ($file = readdir($handle)) !== false )
  {
   if ( $file != ".." && $file != "." )
   {
    if ( is_dir($dir . "/" . $file) )
    {
     $files[$file] = my_scandir($dir . "/" . $file);
    }
    else
    {
     $files[] = $file;
    }
   }
  }
  closedir($handle);
  return $files;
 }
}

function my_scandir1($dir)
{
 $files = array();
 $dir_list = scandir($dir);
 foreach($dir_list as $file)
 {
  if ( $file != ".." && $file != "." )
  {
   if ( is_dir($dir . "/" . $file) )
   {
    $files[$file] = my_scandir1($dir . "/" . $file);
   }
   else
   {
    $files[] = $file;
   }
  }
 }

return $files;
}

$result = my_scandir('./');
$result = my_scandir1('./');
?>

另一个实现方法


代码如下:

function fetchDir($dir) {
        foreach(glob($dir.'\*') as $file) {
            echo $file,"\n";
            if(is_dir($file)) {
                fetchDir($file);
            }
        }
    }
    fetchDir("D:\wamp\www\any");

还可以把‘\*', 换成 DIRECTORY_SEPARATOR.'*' ,把‘\n'换成PHP_EOL ,这样可以跨平台了。

(0)

相关推荐

  • php遍历文件夹所有文件子文件夹函数代码

    复制代码 代码如下: <?phpfunction my_scandir($dir){    $files=array();    if(is_dir($dir))     {        if($handle=opendir($dir))         {            while(($file=readdir($handle))!==false)             {                if($file!="." && $file!

  • PHP遍历文件夹与文件类及处理类用法实例

    本文实例讲述了PHP遍历文件夹与文件类及处理类用法,非常具有实用价值.分享给大家供大家参考.具体方法如下: FindFile.class.php类文件用于遍历目录文件,具体代码如下: <?php /** 遍历文件夹及文件类 * Date: 2013-03-21 * Author: fdipzone * Ver: 1.0 */ class FindFile{ public $files = array(); // 存储遍历的文件 protected $maxdepth; // 搜寻深度,0表示没有

  • php实现遍历文件夹的方法汇总

    php 遍历 文件夹 ,不少时候还是很需要的 /*获取所有文件*/ function get_all_files( $path ){ $list = array(); foreach( glob( $path . '/*') as $item ){ if( is_dir( $item ) ){ $list = array_merge( $list , get_all_files( $item ) ); } else{ $list[] = $item; } } return $list; } /*

  • php遍历文件夹和文件列表示例分享

    为PHP遍历目录和文件列表写了一个简单的类,并附上使用实例,大家参考使用吧 复制代码 代码如下: <?phpdefine('DS', DIRECTORY_SEPARATOR); class getDirFile{ //返回数组    private $DirArray  = array();    private $FileArray = array();    private $DirFileArray = array(); private $Handle,$Dir,$File; //获取目录

  • php实现的遍历文件夹下所有文件,编辑删除

    复制代码 代码如下: <?php /* 遍历文件夹; 功能:(a)可删除文件 (b)可编辑文本,网页文件 (c)可删除文件夹,前提是该文件夹为空 (d)可建立文件,文件夹,修改文件夹名称; lost63.com原创, 转载请注明出处. 交流QQ:35501547 */ $path=$DOCUMENT_ROOT; $path=str_replace("/","\\",$path); //指定文件夹 $path=$path."\\"; if($

  • 使用PHP遍历文件夹与子目录的函数代码

    我们要使用的函数有 Scandir,它的作用是列出指定路径中的文件和目录,就像 Dir 一样. > 与更强力的 Glob() 函数,作用是以数组的形式返回与指定模式相匹配的文件名或目录. > 友情提醒,千万别像小邪那样在电脑前面呆太长时间,否则就会像小邪一样得见鬼的高血糖. 一. 遍历单层文件夹: > 在扫描单层文件夹的问题是,两个函数的结果虽有不同,不过表现是相差不大的. > Scandir 函数会提供额外两行,分别是 "." 和 ".."

  • php无限遍历文件夹示例分享

    最近在能php目录操作,搞了一个目录无限遍历: 使用的函数有: isset()判断某个变量是否定义 chdir() 将当前目录改变为指定的目录. opendi()打开目录. readdir()读取目录. getcwd()获取当前目录. 还用到了for  if  GET传值 大概就这些东东: 下面是代码: 复制代码 代码如下: <?phpif(isset($_GET['id']))//判断是否传值{    $s=str_replace(' ','+',$_GET['id']);    $s=bas

  • python批量修改文件夹及其子文件夹下的文件内容

    前言:前几天我看一位同学要修改很多文件中的数据,该文件数据很规律,一行只有三个数,需要将每行最后一个数字改为负数,但文件有上千个,分布在每个文件夹下面以及它的多级子文件夹下,看他用excel手动改数据改的很痛苦,我突然想到用Python访问和操作文件,修改文件内容都很方便,于是在对Python不熟悉的情况下花了大半天写了下面的程序. 大概思路:先获取文件夹下所有文件名存在列表中,然后循环遍历访问文件内容,修改后写入新文件,考虑到还有子文件夹,这里用了递归的方法访问子文件夹的文件,最后修改完再把原

  • asp.net遍历文件夹下所有子文件夹并绑定到gridview上的方法

    遍历文件夹下所有子文件夹,并且遍历配置文件某一节点中所有key,value并且绑定到GridView上 Helper app_Helper = new Helper(); DataSet ds = new DataSet(); DataTable dt = new DataTable(); protected void Page_Load(object sender, EventArgs e) { gvwBind(); } #region 绑定GridView /// <summary> //

  • node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小

    node.js版     遍历文件夹下最大的文件,并输出路径,大小 实现代码: /* 遍历文件夹下最大的文件,并输出路径,大小 */ function findmax(basepath){ //只能执行一次 if(findmax.s) return; findmax.s = true; var fs = require('fs'); var maxfile = 0; var count = 0; var begin = new Date().getTime(); function Travers

  • JAVA实现遍历文件夹下的所有文件(递归调用和非递归调用)

    JAVA 遍历文件夹下的所有文件(递归调用和非递归调用) 1.不使用递归的方法调用. public void traverseFolder1(String path) { int fileNum = 0, folderNum = 0; File file = new File(path); if (file.exists()) { LinkedList<File> list = new LinkedList<File>(); File[] files = file.listFile

  • c++下使用windows api遍历指定文件夹及其子文件夹中的文件

    以下代码在vs2008中测试通过,利用FindFirstFile,FindNextFile函数遍历了我电脑上全路径为"C:\\Users\\v_tianboli\\Desktop\\windows程式设计开发指南"的文件夹,并输出文件夹及子文件夹中的所有文件完整路径到控制台.完整代码如下: #include "stdafx.h" #include <iostream> #include "windows.h" #include <

  • php读取出一个文件夹及其子文件夹下所有文件的方法示例

    本文实例讲述了php读取出一个文件夹及其子文件夹下所有文件的方法.分享给大家供大家参考,具体如下: 今天的需求要在一个文件夹中读取出这个文件夹下所有的文件,当然也包括这个文件夹下面所有的子文件夹,当然网上有很多的教程,但为了自己理解得更加深刻,还是自己写一下吧.代码如下: $path = './use'; $result = scanFile($path); function scanFile($path) { global $result; $files = scandir($path); f

  • Android递归方式删除某文件夹下的所有文件(.mp3文件等等)

    1.由于需要删除文件,因此需要如下权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 2.核心代码 复制代码 代码如下: package com.example.deleteyoumi; import java.io.File; import android.os.Bundle; import android.os.Han

  • python实现指定文件夹下的指定文件移动到指定位置

    本文主要是写了一个将指定文件夹下的指定文件类型移动到指定位置,具体内容如下 # coding:utf-8 import os import shutil import sys reload(sys) sys.setdefaultencoding('utf8') # print os.getcwd() # 有些文件夹下面有很多文件夹,每个文件夹下面有很多视频文件,现在通过脚本,将文件夹下面的所有文件转移到一个目录下面 # 统计访问的文件夹数量及文件数量 countNum = [0, ] count

  • Python读取文件夹下的所有文件实例代码

    Python读取文件夹下的所有文件 os.listdir(path)是得到在path路径下所以文件的名称列表. open(path)是打开某个文件. iter是python的迭代器. 所以读取某文件夹下的所有文件如下: import os path = "D:/Python34/news" #文件夹目录 files= os.listdir(path) #得到文件夹下的所有文件名称 s = [] for file in files: #遍历文件夹 if not os.path.isdir

  • C++遍历某个文件夹下面的子文件夹及其所有文件

    方法一 下面是输出当前目录下的所有文件夹以及文件的绝对路径(当然也可以是相对路径,由输入的路径决定),下面的函数接口可以改装为单输出文件或者文件夹的接口,这是一个大方面的总接口. #include <fstream> #include <iostream> #include <string> #include <sstream> #include <vector> using namespace std; void getAllFiles(str

随机推荐