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(); }