• Alice   2014/11/11 17:25:00
  • ASP.NET如何遍历目录下的所有文件?
  • 关键字: 递归 遍历文件 文件操作
  •  一、递归方式遍历目录
    1. public void GetFiles1(string pathname)   
    2. {   
    3.     string[] subFiles = Directory.GetFiles(pathname);   
    4.     foreach (string subFile in subFiles)   
    5.     {   
    6.         Console.WriteLine(subFile);   
    7.     }   
    8.     
    9.     string[] subDirs = Directory.GetDirectories(pathname);   
    10.     foreach (string subDir in subDirs)   
    11.     {   
    12.         GetFiles1(subDir);   
    13.     }   

    二、非递归方式遍历目录

    采用堆栈,将目录压入堆栈实现遍历。
    1. public void GetFiles2(string pathname)   
    2. {   
    3.     Stack<string> skDir = new Stack<string>();   
    4.     skDir.Push(pathname);   
    5.     while (skDir.Count > 0)   
    6.     {   
    7.         pathname = skDir.Pop();   
    8.         string[] subDirs = Directory.GetDirectories(pathname);   
    9.         string[] subFiles = Directory.GetFiles(pathname);   
    10.         if (subDirs != null)   
    11.         {   
    12.             for (int i = 0; i < subDirs.Length; i++)   
    13.             {   
    14.                 //string dirName = Path.GetFileName(subDirs[i]);   
    15.                 skDir.Push(subDirs[i]);   
    16.             }   
    17.         }   
    18.     
    19.         if (subFiles != null)   
    20.         {   
    21.             for (int i = 0; i < subFiles.Length; i++)   
    22.             {   
    23.                 //string fileName = Path.GetFileName(subFiles[i]);   
    24.                 // 处理文件   
    25.                 Console.WriteLine(subFiles[i]);   
    26.             }   
    27.         }   
    28.     }   
    29. }   

    调用方式:

    GetFiles2("c:\\windows");


    如果希望在遍历的过程中取得目录或文件的详细信息,可以用DirectoryInfo来代替string:

    1. DirectoryInfo di = new DirectoryInfo(pathname);  
    2. DirectoryInfo[] diinfo = di.GetDirectories();  
    3. FileInfo[] fiinfo = di.GetFiles();  


大家的回答
  • 还没有人回答这个问题哦,亲,快来帮帮TA吧
  •   我来回答
  • 注册用户登录后才能发表评论,请 登录注册
  • 请您注意

    ·自觉遵守:爱国、守法、自律、真实、文明的原则

    ·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规

    ·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品

    ·承担一切因您的行为而直接或间接导致的民事或刑事法律责任

    ·您在编程中国社区新闻评论发表的作品,本网站有权在网站内保留、转载、引用或者删除

    ·参与本评论即表明您已经阅读并接受上述条款

  • 相关话题
  • 暂无相关话题哦
  • 感谢以下赞助商