递归实现遍历文件夹的两种方法

在网上,遍历文件夹的算法大多是用递归思想实现的 ,我查了一下资料,结合应用实际,总结了两个方法。

方法一、

 

public   void  FindAllFiles( string  path)
        
{
            
if (Directory.Exists(path)==true )
            
{

               DirectoryInfo[] ChildDirectory;
//子目录集
                FileInfo[] NewFileInfo;//当前所有文件
                DirectoryInfo FatherDirectory = new DirectoryInfo(path); //当前目录
                ChildDirectory = FatherDirectory.GetDirectories("*.*"); //得到子目录集

                NewFileInfo 
= FatherDirectory.GetFiles();//得到文件集,可以进行操作
               foreach (FileInfo file in NewFileInfo)
               
{
                  
                       listBox1.Items.Add((Object)file.FullName);
                  
              }

                
foreach (DirectoryInfo dirInfo in ChildDirectory)
               
{
                   FindAllFiles(dirInfo.FullName);
               }

          }

           
        }

 

方法二、

 

private   void  FindAllFiles( string  folderpath)
        
{

            
if (Directory.Exists(folderpath) == true)
            
{

                
foreach (string str in Directory.GetFiles(folderpath))
                
{
                    
                        listBox1.Items.Add((Object)str.ToString());

                }

                
foreach (string strfolder in Directory.GetDirectories(folderpath))
                
{
                    FindAllFiles(strfolder);
                }


            }


        }

你可能感兴趣的:(C#)