我正在使用:
File.Exists(filepath)
我想要做的是将其转换为模式,因为文件名的第一部分会发生变化。
例如:文件可能是
01_peach.xml
02_peach.xml
03_peach.xml
如何根据某种搜索模式检查文件是否存在?
答案 0 :(得分:110)
您可以使用模式执行目录列表以检查文件
string[] files = System.IO.Directory.GetFiles(path, "*_peach.xml", System.IO.SearchOption.TopDirectoryOnly);
if (files.Length > 0)
{
//file exist
}
答案 1 :(得分:54)
如果您使用.net框架4或更高版本,则可以使用Directory.EnumerateFiles
bool exist = Directory.EnumerateFiles(path, "*_peach.xml").Any();
这可能比使用Directory.GetFiles
更有效,因为您避免通过整个文件列表进行迭代。
答案 2 :(得分:5)
使用System.IO.DirectoryInfo.GetFiles()
获取所有匹配文件的列表另见SO问题:
Is there a wildcard expansion option for .net apps?
How do I check if a filename matches a wildcard pattern
和其他许多人......