【发布时间】:2011-07-31 04:37:09
【问题描述】:
我想检索扩展名与指定字符串完全匹配的文件列表。
DirectoryInfo di = new DirectoryInfo(someValidPath);
List<FileInfo> myFiles = new List<FileInfo>();
foreach (FileInfo fi in di.GetFiles("*.txt"))
{
myFiles.Add(fi);
}
我得到了扩展名为*.txt 的文件,但我也得到了扩展名为*.txtx 的文件,所以我编写的代码相当于获取扩展名以 txt 开头的文件。
这不是我想要的。我是否需要获取所有文件名并对"\\.txt$" 进行正则表达式匹配(我认为),或者使用.EndsWith(".txt") 等测试每个文件名字符串来完成此操作?
谢谢!
【问题讨论】:
-
是的,你知道。有那么难吗,为什么需要正则表达式?
-
当心,每个的答案都忘记了 Windows 文件名不区分大小写。您也可以获得 .TXT。文件名的大小写规则有点讨厌,您可能需要检查字符串长度。
-
@Hans:好点。 Fredrik 的回答是否处理不区分大小写的问题?
-
呃,这样更好。正如我所说,令人讨厌的是,文件系统保留了自己的大小写规则。如果只是 .txt,Fredrik 的代码就可以工作
标签: c# regex filtering getfiles