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

本文提供了两种使用递归思想遍历文件夹并获取所有文件路径的方法。方法一使用 DirectoryInfo 和 FileInfo 对象,方法二直接利用 Directory 类的 GetFiles 和 GetDirectories 方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

方法一、

 

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);
                }


            }


        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值