zoukankan      html  css  js  c++  java
  • 递归遍历文件夹获取所有文件

    新建控制台应用程序,源代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;//文件操作需要引入的命名空间
    
    namespace GetFiles
    {
        class Program
        {
            //定义全局静态集合存放文件路径
            public static List<string> pathList = new List<string>();
            static void Main(string[] args)
            {
                string path = @"D:cnblogs	est";
    
                DirectoryInfo dir = new DirectoryInfo(path);
                GetFileList(dir);
                for (int i = 0; i < pathList.Count; i++)
                {
                    Console.WriteLine(pathList[i]);
                }
                Console.ReadLine();
            }
    
            /// <summary>
            /// 遍历指定文件夹及其子文件下的所有文件
            /// </summary>
            /// <param name="_dir"></param>
            public static void  GetFileList(DirectoryInfo _dir)
            {
              
                //获取指定文件夹下的所有文件
                FileInfo[] fis = _dir.GetFiles();
                for (int i = 0; i < fis.Length; i++)
                {
                    pathList.Add(fis[i].FullName);
                }
                //获取指定文件夹下的所有文件夹并递归调用获取文件的方法
                DirectoryInfo[] dis = _dir.GetDirectories();
                for (int j = 0; j < dis.Length; j++)
                {
                    GetFileList(dis[j]);
                }
               
            }
        }
    }

    测试文件分布情况如下:

     

    运行程序:

    成功读取到了指定文件夹下的所有文件!!!

    后来优化了获取文件路径方法:

        /// <summary>
        /// 遍历指定文件夹及其子文件下的所有文件
        /// </summary>
        /// <param name="_path">文件根目录</param>
        /// <param name="_pathList">文件路径集合</param>
        /// <returns>文件路径集合</returns>
        public static List<string> GetFileList(string _path, List<string> _fileList)
        {
            DirectoryInfo dir = new DirectoryInfo(_path);
            FileInfo[] fil = dir.GetFiles(); ;
            DirectoryInfo[] dii = dir.GetDirectories();
            foreach (FileInfo f in fil)
            {
               _fileList.Add(f.FullName);
            }
            //获取子文件夹内的文件列表,递归遍历  
            foreach (DirectoryInfo d in dii)
            {  
              GetFileList(d.FullName, _fileList);
            }
            return _fileList;
        }
  • 相关阅读:
    将Excel文件.xls导入SQL Server 2005
    linux mount命令
    python write file
    vim visual模式 复制
    chef简介
    录音整理文字工具otranscribe简介
    ftp put get 的使用方法
    yum lock 解决方法
    phalcon builder get raw sql
    centos7安装VirtualBox
  • 原文地址:https://www.cnblogs.com/jiangxianshen/p/7793906.html
Copyright © 2011-2022 走看看