如何用c#实现判断路径下是否含有指定后缀名的文件

dzhl01 2010-10-31 10:48:14
如何判断某目录下是否含有指定后缀名的文件,对于单个后缀名我可以实现。如下
if (Directory.GetFiles(path, filter).Length == 0)
{ Directory.Delete(path, true); }
filter为后缀名
但对多个后缀名(如格式filter=“.jpg;.bmp;.gig”)时,我只能先把filter分解成单个后缀名,然后再一一比较。个人不喜欢这种方法,不知大家可有其他办法。
...全文
1267 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangbin_CSDN 2010-11-01
  • 打赏
  • 举报
回复
先遍历文件列表,然后正则判断嘛
qgj1655 2010-10-31
  • 打赏
  • 举报
回复
DirectoryInfo TheFolder = new DirectoryInfo(strDir);
foreach (FileInfo NextFile in TheFolder.GetFiles())
{
if(NextFile.Name.Substring(NextFile.Name.LastIndexOf("."))==".xml")
{
//xml文件,其实的也类型。也可以改成lamda表达式。
}
}
xuld 2010-10-31
  • 打赏
  • 举报
回复
".jpg;.bmp;.gig".IndexOf("." + Ext)
jointan 2010-10-31
  • 打赏
  • 举报
回复
Directory.GetFiles?
只要你这个Directory下,有任何一个Directory或File没有访问权限,马上就会异常在达不到目的前抛出.并中止.

建议老老实实的递归吧.
wuyq11 2010-10-31
  • 打赏
  • 举报
回复
3.5以上就用
string[] arr= new string[]{"jpg","bmp","gif"};
var r=(from q in Directory.GetFiles(path)
Where arr.Contains(Path.GetExtension(q))==true
select q).Count();
CsToD 2010-10-31
  • 打赏
  • 举报
回复
if(Directory.GetFiles(path).Where(s => Regex.IsMatch(s, "^(.jpg|.bmp|gif)$", RegexOptions.IgnoreCase)).Count()==0)
wuyq11 2010-10-31
  • 打赏
  • 举报
回复
private FileInfo[] GetFiles(string path,string extension)
{
DirectoryInfo dir = new DirectoryInfo(path);
return dir.GetFiles("*." + extension);
}
兔子-顾问 2010-10-31
  • 打赏
  • 举报
回复 2
string[] exts = new string[]{"jpg","bmp","gif"};
if (Directory.GetFiles(path).Where(s => exts.Contains(Path.GetExtension(s).ToLower())).Count() == 0)
{

}

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧