递归读取目录内容

$path=‘E:/wamp/phplianxi/‘;
$nested_list = readDirSNested($path, 0);
echo ‘<pre>‘;
var_dump($nested_list);
/**
 * 递归读取目录内容
 * @param string $path 需要读取的目录内容
 * @return void
 */
function readDirSNested($path) {
 $nested = array();//存储当前目录下所有内容
 $handle = opendir($path);
 while(false !== ($file_name=readdir($handle))) {
  if ($file_name == ‘.‘ || $file_name == ‘..‘) continue;
  $file_info = array();//存储当前文件信息的数组
  $file_info[‘name‘] = $file_name;

// 判断当前文件是否为目录,如果是,递归调用该函数完成该目录的内容获取
  if (is_dir($path . ‘/‘ . $file_name)) {
   $file_info[‘type‘] = ‘dir‘;
   // 目录, 递归
   $func_name = __FUNCTION__;// 魔术常量,表示当前函数名
   $file_info[‘nested‘] = $func_name($path . ‘/‘ . $file_name);
  } else {
   //文件
   $file_info[‘type‘] = ‘file‘;
  }
  $nested[] = $file_info;
 }
 closedir($handle);
 return $nested;
}

时间: 2024-10-12 03:32:07

递归读取目录内容的相关文章

103)PHP,递归读取目录内容

知识点总结: 1 打开某个目录 2 依次读取目录内文件 3 如果某个文件为目录 4 递归对该目录采用打开,读取,若还是目录,继续判断,读取 5 6 7 递归点: 如果子文件为目录,则递归 8 出口: 如果目录中不存在子目录,则不需要继续递归! 代码:

readdir_r()读取目录内容

readdir()在多线程操作中不安全,Linux提供了readdir_r()实现多线程读取目录内容操作. #include <stdio.h> #include <stdlib.h> #include <dirent.h> int main(void) { DIR* dirp; struct dirent *dp1=malloc(sizeof(struct dirent)); struct dirent *dp2=malloc(sizeof(struct dirent

递归读取目录文件下的所有文件

---恢复内容开始--- 1.读取e盘下的文件夹app下的所有文件(不是文件夹)需要读取的是(xx.txt;yytxt,gg.txt)目录如图 e:app app1 app1.1   xx.txt app1.2  yy.txt app2 app2   gg.txt 2.代码 package com.tansun; import java.io.File; import java.util.ArrayList; import java.util.List; public class FileRea

C++ 递归读取目录下所有文件

windows版本 #include <iostream> #include <io.h> #include <fstream> #include <string> #include <sstream> using namespace std; void getAllFiles(string path, vector<string>& files) { //文件句柄 long hFile = 0; //文件信息 struct

php递归读取目录

1 function recursion_dir($dir){ 2 $files = array(); 3 if($handle = opendir($dir)){ 4 while(($file = readdir($handle)) !== false){ 5 if($file != "." && $file != ".."){ 6 if(is_dir($dir.'/'.$file)){ 7 $files[iconv('gb2312','UTF-8

23 遍历删除本地目录的方法,文件末尾追加内容,按行读取文件内容

1.遍历删除本地目录 /** * 递归删除非空目录 * @param file */ public static void deletNotEmptyDir(File file){ File[] files = file.listFiles(); if (files != null) { for (File f : files) { deletNotEmptyDir(f); } } file.delete(); } 2.文件末尾追加内容 /** * 在文件末尾追加字符串 * @param fil

Java之递归遍历目录,修改指定文件的指定内容

EditProperties.java 1 package PropertiesOperation.Edit; 2 3 import java.io.File; 4 5 /** 6 * 替换指定Porpoerties文件中的指定内容 7 * 三个参数: 8 * filePath:存放properties文件的目录 9 * srcStr:需要替换的字符串 10 * desStr:用于替换的字符串 11 * */ 12 public class EditProperties { 13 private

IO流-递归删除带内容的目录

/* * 需求:递归删除带内容的目录 * * 目录:demo * ---------------------------------------------------------------------------------- * 具体的demo目录如下: * demo\aaaa\a1.txt * demo\aaaa\a2.txt * demo\bbbb\b1.txt * demo\bbbb\b2.txt * 具体的删除结果如下:(删除顺序:先删某文件夹下的文件,再删该文件) * a1.tx

PHP读取目录树的实现方法分析_php技巧 - PHP

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 本文实例讲述了PHP读取目录树的实现方法.分享给大家供大家参考,具体如下: 前一阵时间面试XX公司笔试题中竟然有这样一道题: 使用PHP列出目录树! 当时一看就懵逼了!基本的思路还是有的,不过是使用递归算法,但对PHP操作目录文件的方法却不是很了解,所以今天好好补习一下! 解题思路: 1. 列出目录中的文件. 2. 判断是否是目录,如果是目录就继续递归. 3. 将所有文件名,存入多维数组 <?php function