递归目录下的文件

众所周知,获得某一目录下第一级的所有文件和文件夹列表,很容易办到:
DirectoryInfo di=new DirectoryInfo(strBaseDir);//strBaseDir是起始目录,绝对地址
DirectoryInfo[] diA=di.GetDirectories();//获得了所有一级子目录
FileInfo[] fiA=di.GetFiles();//获得了所有起始目录下的文件
要是想获得某一目录下的所有文件和目录(包含所有子目录),那该怎么办呢?目录都是一层套一层的,我们不能预知某个目录的深度,只有获得了父节点,才有可能了解子节点,解决这个问题,只有递归这个概念了。
那么什么是递归呢?请不会C语言的朋友先去看书吧,我这里只简单的说一下我的理解:递归就是一个方法,在这个方法里面,再次调用它本身这个方法,从而描述了某一事物运作的深度…… - - 不废话了,看代码吧:

public ArrayList al=new ArrayList();
//我把ArrayList当成动态数组用,非常好用
public void GetAllDirList(string strBaseDir)
{
  DirectoryInfo di=new DirectoryInfo(strBaseDir);
  DirectoryInfo[] diA=di.GetDirectories();
  for(int i=0;i<diA.Length;i++)

  {
   al.Add(diA[i].FullName);
  //diA[i].FullName是某个子目录的绝对地址,把它记录在ArrayList中
   GetAllDirList(diA[i].FullName);
  //注意:递归了。逻辑思维正常的人应该能反应过来
  }
}

最后,如何把所有目录信息从ArrayList中取出来呢?如下:

for(int i=0;i<al.Count;i++)
{
   textBox1.AppendText(al[i].ToString()+" ");
  //textBox1是容器,拷贝我的代码,注意要换一个你自己的容器
}

时间: 2024-10-12 08:39:28

递归目录下的文件的相关文章

Python递归遍历目录下所有文件

#自定义函数: import ospath="D:\\Temp_del\\a" def gci (path): parents = os.listdir(path) for parent in parents: child = os.path.join(path,parent) #print(child) if os.path.isdir(child): gci(child) # print(child) else: print(child) gci(path) #使用os.walk方

(实用篇)PHP不用递归遍历目录下所有文件的代码

<?php /** * PHP 非递归实现查询该目录下所有文件 * @param unknown $dir * @return multitype:|multitype:string */ function scanfiles($dir) { if (! is_dir ( $dir )) return array (); // 兼容各操作系统 $dir = rtrim ( str_replace ( '\\', '/', $dir ), '/' ) . '/'; // 栈,默认值为传入的目录 $

[转载]Python递归遍历目录下所有文件

#自定义函数: import ospath="D:\\Temp_del\\a"def gci (path):"""this is a statement"""parents = os.listdir(path)for parent in parents:child = os.path.join(path,parent)#print(child)if os.path.isdir(child):gci(child)# print(

[Linux] 批量转换整个目录下的文件编码为UTF-8;

[Linux] 批量转换整个目录下的文件编码为UTF-8: #!/bin/bash - #===============================================================================# #          FILE: conv.sh#  #         USAGE: ./conv.sh #  #   DESCRIPTION: 一个支持把整个目录递归转换GB2312为UTF-8的脚本: #  #       OPTIONS: 

AssetsUtils【读取assets、res/raw、./data/data/包名/目录下的文件】

版权声明:本文为博主原创文章,未经博主允许不得转载. 前言 封装了以下功能: 1.读取assets目录下的资源html.文件.图片,将文件复制到SD卡目录中: 2.读取res/raw目录下的文件内容: 3.读写./data/data/包名/下的文件: 效果图 代码分析 最常用的方法:getStringFromAssert(Context mContext, String assetsFilePath)[读取assets目录中的文件字符串] 使用步骤 一.项目组织结构图 注意事项: 1.  导入类

grep搜索目录下某些文件的某个关键字

grep -R --include="*.*"(文件名匹配)  key(关键字) dir(目录) eg.在当前目录下搜索xml文件中的关键172.19.32.22 grep -R --include="*.xml"  '172.19.32.22' ./ 注释:-R表示递归搜索 grep搜索目录下某些文件的某个关键字

Java实现列出目录下所有文件和文件夹

1 package com.filetest; 2 3 import java.io.File; 4 import java.util.Scanner; 5 6 public class fileview { 7 8 public static void main(String args[]){ 9 10 view(); //调用查看文件列表函数 11 12 } 13 14 private static void view() { 15 16 Scanner scanner=new Scanne

Python 读取某个目录下的文件

读取某个目录下的文件,如'/Users/test/test_kmls'目录下有test1.txt.test2.txt. 第一种方法读出的all_files是test1.txt.test2.txt 1 import os 2 3 kml_path=os.path.abspath('/Users/test/test_kmls') 4 all_files=os.listdir(kml_path) 5 for file in all_files: 6 print file 第二种方法可以获得文件的全路径

php读取目录下的文件

工作需要写了一个读取指定目录下的文件,并显示列表,点击之后读取文件中的内容 高手拍砖,目录可以自由指定,我这里直接写的是获取当前文件目录下面的所有文件 </pre> <?php /** * 读取指定目录下面的文件内容 * @author Administrator * */ class Catlog { /** * 要读取的目录 * @var string */ private $dir; /** * 文件名中必须存在 * @var string */ private $str = 'p