当前位置:首页 > C#

C#递归方法遍历目录及子目录

happyfhb14年前 (2012-12-29)C#1794
摘要: 众所周知,获得某一目录下第一级的所有文件和文件夹列表,很容易办到:DirectoryInfo di=new DirectoryInfo(strBaseDir);//strBaseDir是起始目录,绝对地址DirectoryInfo[] diA=di.GetD…

 

众所周知,获得某一目录下第一级的所有文件和文件夹列表,很容易办到:
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是容器,拷贝我的代码,注意要换一个你自己的容器 
 }

 

扫描二维码推送至手机访问。

版权声明:本文由海海日记-冯海滨博客发布,如需转载请注明出处。

本文链接:http://www.fenghaibin.com/?id=1025

“C#递归方法遍历目录及子目录” 的相关文章

IIS_WPG用户组

IIS_WPG用户组在安装asp.net web应用程序时,发现文件夹的用户权限总设置不对,结果导致读写access数据库文件出错。仔细研究了一下,发现必须要给IIS_WPG用户组足够的权限,程序才能正常运行。IIS_WPG用户组是做什么的?为了管理的方便,在安装 IIS 6 时创建了 IIS_WP…

c#无返回值函数如何调用

 无返回值函数如何调用 事例 定义一个不需要返回值的函数 none()         static void none()//定义一个不需要返回值的函数        {&nbs…

c#中如何判断用户输入的字符全部为数字的方法-经典

             string num = textBox1.Text; //从文本框获取用户输入的值     …

C# 编写 Windows服务

. 新建一个项目2. 从一个可用的项目模板列表当中选择Windows服务3. 设计器会以设计模式打开4. 从工具箱的组件表当中拖动一个Timer对象到这个设计表面上 (注意: 工具箱中的timer 都是不对的,需要另行添加 详见方法 )&n…

C#  Windows服务 调试方法

C# Windows服务 调试方法

1. 首先在你的服务源代码中添加一个定时器。2. 将定时器设置为可用状态 并且在定时器中加代码 并设置定时器的定时时间 。3. 编译和安装好服务。4. 在定时器代码里面下断点。 5. 在服务控制台管理器中启动服务。以下操作必须在定时器设置的秒内 秒内完成,否则无法进入调试状态。6. VS2…

Windows服务程序的编写、调试、部署

Windows服务程序的编写、调试、部署

L 基本概念什么是Windows服务?作为.net开发人员,平常写的都是winform程序或者asp.net程序,可能对Windows服务程序接触的不多,下面我摘了个百度文献的解释给大家:Microsoft Windows 服务(即以前的NT服务)使您能够创建在它们自己…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。