zoukankan      html  css  js  c++  java
  • C#递归方法遍历目录及子目录

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

    }
  • 相关阅读:
    mysql 远程登陆不上
    hdu 5339 Untitled【搜索】
    SqlServer 书目
    passwordauthentication yes
    oracle 11g RAC ocfs2
    Oracle 11g RAC database on ASM, ACFS or OCFS2
    CentOS ips bonding
    Oracle 11g RAC features
    openStack 王者归来之 trivial matters
    openstack windows 2008 img
  • 原文地址:https://www.cnblogs.com/eecc/p/1261126.html
Copyright © 2011-2022 走看看