C#实现遍历文件夹获取指定后缀名文件

问题描述:

    项目需要,要进行某文件夹下所有shp数据的读取

解决方法:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace learnGDAL
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
         
        
        private void button3_Click(object sender, EventArgs e)
        {
            List lst = new List();
            string strPath = @"E:\WORK\g1\北京市\北京市";
            List lstFiles = getFile(strPath, ".shp",lst);
            foreach(FileInfo shpFile in lstFiles)
            {
                label3.Text += shpFile.FullName+"\n";
            }
        }
        /// 
        /// 获得目录下所有文件或指定文件类型文件(包含所有子文件夹)
        /// 
        /// 文件夹路径
        /// 扩展名可以多个 例如 .mp3.wma.rm
        /// List
        public static List getFile(string path, string extName, List lst)
        {
            try
            {
                
                string[] dir = Directory.GetDirectories(path); //文件夹列表   
                DirectoryInfo fdir = new DirectoryInfo(path);
                FileInfo[] file = fdir.GetFiles();
                //FileInfo[] file = Directory.GetFiles(path); //文件列表   
                if (file.Length != 0 || dir.Length != 0) //当前目录文件或文件夹不为空                   
                {
                    foreach (FileInfo f in file) //显示当前目录所有文件   
                    {
                        if (extName.ToLower().IndexOf(f.Extension.ToLower()) >= 0)
                        {
                            lst.Add(f);
                        }
                    }
                    foreach (string d in dir)
                    {
                        getFile(d, extName,lst);//递归   
                    }
                }
                return lst;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        
    }
}

效果:

C#实现遍历文件夹获取指定后缀名文件_第1张图片

你可能感兴趣的:(C#,日常积累,C#,后缀名,文件遍历,FileInfo,DirectoryInfo)