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

时间:2021-12-12 16:01:36

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