文件按文件名模式存在

我在用:

File.Exists(filepath) 

我想要做的是把这个模式转换出来,因为文件名的第一部分会改变。

例如:文件可能是

 01_peach.xml 02_peach.xml 03_peach.xml 

我怎样才能检查文件是否存在基于某种search模式?

你可以用一个模式做一个目录列表来检查文件

 string[] files = System.IO.Directory.GetFiles(path, "*_peach.xml", System.IO.SearchOption.TopDirectoryOnly); if (files.Length > 0) { //file exist } 

如果您使用.net framework 4或更高版本,则可以使用Directory.EnumerateFiles

 bool exist = Directory.EnumerateFiles(path, "*_peach.xml").Any(); 

这可能比使用Directory.GetFiles更有效,因为你避免遍历整个文件列表。

使用System.IO.DirectoryInfo.GetFiles()获取所有匹配文件的列表

另请参阅SO问题:

.net应用程序是否有通配符扩展选项?

如何检查文件名是否匹配通配符模式

和其他许多人

 // See if this file exists in the C:\ directory. if(File.Exists(@"C:\filename.extention")) { Console.WriteLine("Good luck! I am here."); } else { Console.WriteLine("Ah! I am not appear"); }