C#中获得文件夹下所有文件

C#中获得文件夹下所有文件的两种方法
如果想要获得一个文件夹下所有的文件,对于大家来说应该很简单,此处也做了一下总结,归为两种方法,

方法一: 利用递归的方法获得所有文件


///
/// 存储文件的变量
///
List<System.IO.FileInfo> FileList = new List<System.IO.FileInfo>();
///
/// 获得文件夹下所有的文件(递归)
///
/// 文件夹的目录
/// 返回所有文件

List<System.IO.FileInfo> GetAllFileInfo(System.IO.DirectoryInfo dir)
{
System.IO.FileInfo[] allFile = dir.GetFiles();
foreach (System.IO.FileInfo file in allFile)
{
FileList.Add(file);
}
System.IO.DirectoryInfo[] allDir = dir.GetDirectories();
foreach (System.IO.DirectoryInfo d in allDir)
{
GetAllFileInfo(d);
}
return FileList;
}



方法二:利用类库,直接获得所有文件复制代码
///
/// 获得文件夹下所有的文件(类库调用)
///
/// 文件夹的目录
/// 返回所有文件

System.IO.FileInfo[] GetAllFileInfo2(System.IO.DirectoryInfo dir)
{
return dir.GetFiles(".", System.IO.SearchOption.AllDirectories);

}


调用端的代码:

        private void button1_Click(object sender, EventArgs e)
{
        System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(@"C:\Users\wjh\Desktop\测试专用包");
        #region 调用端(调用递归的方法)
        //List<System.IO.FileInfo> allFile= GetAllFileInfo(dir);
        //foreach (System.IO.FileInfo file in allFile)
        //{
        //    MessageBox.Show(file.Name);
        //}
        #endregion
        #region 调用端(类库的方法)
        System.IO.FileInfo[] allFiles = GetAllFileInfo2(dir);
        foreach (System.IO.FileInfo file in allFiles)
        {
            MessageBox.Show(file.Name);
        }
        #endregion
    }


两种方法都可以获得某个文件夹下所有的文件,一般情况下为了简单,大家都会用第二种方法,但是第一种方法也应该知道,它体现了 “递归” 的思想!

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HappyGirl快乐女孩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值