C#获取文件夹下指定格式的所有文件

C#获取文件夹下指定格式的所有文件的方法,虽然很简单,但还是分享一下吧,用到时可以稍加修改和优化就可以使用。

获取指定目录下所有文件

//最要使用 System.IO.Directory.GetFiles() 函数
string basepath = "D://";
string[] strDataFiles = Directory.GetFiles(basepath);

对文件扩展名进行筛选时,在这里提供两种写法吧,也都很简单。

常规写法

/// <summary>
        /// 筛选文件格式
        /// </summary>
        /// <param name="paths">文件列表</param>
        /// <param name="ex">保留的 格式,多个以逗号隔开(.txt,.jpg)</param>
        /// <returns></returns>
        private string[] CheckFileEx(string[] paths, string ex)
        {
            List<string> result = new List<string>();
            for (int i = 0; i < paths.Length; i++)
            {
                int lastex = paths[i].LastIndexOf('.');
                string tex = paths[i].Substring(lastex);
                var blo = false;
                foreach (string s in ex.Split(','))
                {
                    if (tex == s)
                    {
                        blo = true;
                        break;
                    }
                }
                if (blo) {
                    result.Add(paths[i]);
                }
            }
            return result.ToArray();
        }

Linq写法

 /// <summary>
        /// 筛选文件格式1
        /// </summary>
        /// <param name="paths">文件列表</param>
        /// <param name="ex">保留的 格式,多个以逗号隔开(.txt,.jpg)</param>
        /// <returns></returns>
        private string[] CheckFileEx1(string[] paths, string ex)
        {
          return paths.ToList().Where(n => ("," + ex + ",").Replace("," + n.Substring(n.LastIndexOf('.')) + ",", "") != "," + ex + ",").ToArray();
        }
原文地址:https://www.cnblogs.com/huhangfei/p/4991954.html