• C#中获得文件夹下所有文件的两种方法


         如果想要获得一个文件夹下所有的文件,对于大家来说应该很简单,此处也做了一下总结,归为两种方法,闲话不多说,直接贴码:

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

            /// <summary>
            /// 存储文件的变量
         /// </summary>
            List<System.IO.FileInfo> FileList = new List<System.IO.FileInfo>();
            /// <summary>
            /// 获得文件夹下所有的文件(递归)
         /// </summary>
            /// <param name="dir">文件夹的目录</param>
            /// <returns>返回所有文件</returns>
            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;
            }

    方法二:利用类库,直接获得所有文件

            /// <summary>
            /// 获得文件夹下所有的文件(类库调用)
          /// </summary>
            /// <param name="dir">文件夹的目录</param>
            /// <returns>返回所有文件</returns>
            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:UserswjhDesktop测试专用包");
                #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
            }

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

        

  • 相关阅读:
    [转载]四大Java EE容器
    [转载]javaEE规范和SSH三大框架到底有什么关系
    javaee包含的服务和组件
    Java类文件最大限制
    oracle给字段添加描述
    apache commons工具包
    redis教程
    git学习
    编程人物
    程序员必须了解的5大编程准则
  • 原文地址:https://www.cnblogs.com/wangjianhui008/p/3236357.html
Copyright © 2020-2023  润新知