c#file过滤多种格式_[C#].NET/C#应用程序开发中使用Directory.GetFiles()过滤多种文件扩展名类型有哪些方法?...
问题描述
我们知道,在.NET/C#的程序开发中,可以通过Directory.GetFiles()方法获取到指定文件夹中所有的文件,同时,我们还可以指定一个需要过滤掉的文件类型的扩展名。但如何通过Directory.GetFiles()这个方法过滤掉多个文件类型的扩展名呢?
比如,我们需要过滤掉文件扩展名为*.mp3|*.jpg这两种文件,如:
Directory.GetFiles("C:\\path", "*.mp3|*.jpg", SearchOption.AllDirectories);
Directory.GetFiles("C:\\path", "*.mp3;*.jpg", SearchOption.AllDirectories);
.NET/C#应用程序开发中使用Directory.GetFiles()过滤多种文件扩展名类型有哪些方法呢?
方案一
在.NET 4.0 或者以上版本中,我们可以使用Directory.EnumerateFiles()方法来过滤多种文件类型,如下:
var files = Directory.EnumerateFiles("C:\\path", "*.*", SearchOption.AllDirectories)
.Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));
在.NET4.0 以前的版本中,我们可以使用如下方式:
var files = Directory.GetFiles("C:\\path", "*.*", SearchOption.AllDirectories)
.Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));
方案二
我们也可以借助LINQ的SelectMany()方法来实现,如:
private static string[] GetFiles(string sourceFolder, string filters, System.IO.SearchOption searchOption)
{
return filters.Split('|').SelectMany(filter => System.IO.Directory.GetFiles(sourceFolder, filter, searchOption)).ToArray();
}
方案三
我们也可以使用正则表达式来处理,如下:
var files = Directory.GetFiles("path_to_files").Where(file => Regex.IsMatch(file, @"^.+\.(wav|mp3|txt)$"));
方案四
或者使用如下的Contains()方法,如:
var set = new HashSet { ".mp3", ".jpg" };
Directory.GetFiles(path, "*.*", SearchOption.AllDirectories)
.Where(f => set.Contains(
new FileInfo(f).Extension,
StringComparer.OrdinalIgnoreCase));
或者
from file in Directory.GetFiles(path, "*.*", SearchOption.AllDirectories)
from ext in set
where String.Equals(ext, new FileInfo(file).Extension, StringComparison.OrdinalIgnoreCase)
select file;
c#file过滤多种格式_[C#].NET/C#应用程序开发中使用Directory.GetFiles()过滤多种文件扩展名类型有哪些方法?...相关推荐
- dreamweaver后缀名_在 Dreamweaver 中添加或编辑识别的文件扩展名
如果您要对 Dreamweaver 中的以下问题进行故障诊断,请阅读本文: 打开文件时,出现此错误消息:"找不到此文件扩展名的有效编辑器." 代码视图中的颜色编码与所需文件类型的颜 ...
- linux 3gpp格式转换器,3GPP 文件扩展名: 它是什么以及如何打开它?
3GPP 文件疑难解答 典型的 3GPP 开放挑战 VLC Media Player 消失 你尝试加载 3GPP 文件并收到错误,例如 "%%os%% 无法打开 3GPP 文件扩展名&quo ...
- ajax传输文件大小有没有限制_巧改文件扩展名,1秒解除微信传输文件大小限制!...
点击上方[word精品教程]-右上角[...]-[设为星标⭐] 即可第一时间获取最新办公资讯 作者:网黑哥 来源:网罗灯下黑(ID:wldxh8) 在微信电脑端发送一些可以直接播放的视频时,往往会 ...
- python程序开发_用python进行桌面程序开发
Python是一种面向对象.直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定.这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所 ...
- java 获取文件扩展名_如何在Java中获取文件扩展名
java 获取文件扩展名 Sometimes while working with files, we need to process them differently based on their ...
- 已解决Excel无法打开文件test.xIsx“,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。
已解决Excel无法打开文件test.xIsx",因为文件格式或文件扩展名无效.请确定文件未损坏,并且文件扩展名与文件的格式匹配. 文章目录 报错代码 报错原因 解决方法 帮忙解决 报错代码 ...
- Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配...
office版本:2016 系统版本:win10 问题描述: 1.桌面新建excel表格后,打开时,提示"Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效.请确定文件 ...
- java文件后缀_关于java文件扩展名认识
☆ 写在前面 一名新手在历经千辛万苦写好Java程序,怀揣激动的心情去编译和执行java程序时,结果出现错误,什么找不到文件,什么不存在,找不到main方法等等.我在这里就文件后扩展名,也叫文件后缀名 ...
- Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配
office版本:2016 系统版本:win10 问题描述: 1.桌面新建excel表格后,打开时,提示"Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效.请确定文件未损 ...
- 打开excel显示php拓展名,phpexcel 导出excel 因为文件格式或文件扩展名无效,请确定文件未损坏,并且文件扩展名与文件的格式匹配...
phpexcel导出excel:打开出现这个错误,强制打开是乱码 $objPHPExcel =newPHPExcel(); $filename ="test.xls"; heade ...
最新文章
- 一个云本地文件包含漏洞,影响世界一流公司
- [WEB API] CLIENT 指定请求及回应格式(XML/JSON)
- kafka是什么_终于知道Kafka为什么这么快了!
- 50张非常精美的Apple主题桌面壁纸(上篇)
- 混合背包(信息学奥数一本通-T1270)
- MongoDB学习笔记lt;七gt;
- python调试教程_python进阶教程之==、is和调试
- Jquery打造AdRotator轮转图片
- 配置generatorConfig.xml自动生成的代码的sql书写问题
- MyBatis源码阅读(六) ---mapper方法具体执行流程分析
- 组建局域网_组网方案图文教程,双路由器有线搭建网络,公司家庭组建局域网...
- 模拟微博登陆,获取微博cookie
- mysql如何上传音频文件_如何上传本地音乐获取MP3外链(欢迎分享和转载)
- FineBI 的关联视图及多表关联 自助数据集
- C#实现多人语音聊天
- 广西事业单位考试 计算机基础知识,2018年广西壮族自治区事业单位考试《公共基础知识》1000题【必考题库】.pdf...
- 学习java数组的练习代码
- 美国NBC电视台社论 中文版
- 招聘网站数百万条敏感数据泄露,简历、身份证扫描件统统曝光
- 对象存储COS-数据处理能力升级!“组合拳”助力存储新时代!