C# 用于查找部分文件名的文件是否存在的代码

C# 用于查找部分文件名的文件是否存在的代码,c#,C#,我有一个文件c:\sai\chn\u 20151019\u 5932.txt。这里5932是分和秒格式。59分32秒。当我们在同一天再次运行包时,文件夹中的现有文件应被删除,但由于几秒钟的时间,我无法删除该文件。 我需要这样的C代码 steing filename: @"c:\sai\chn_20151019_5932.txt"; if(filename.exists(@"c:\sai\chn_20151019" + "*") {

我有一个文件c:\sai\chn\u 20151019\u 5932.txt。这里5932是分和秒格式。59分32秒。当我们在同一天再次运行包时,文件夹中的现有文件应被删除,但由于几秒钟的时间,我无法删除该文件。 我需要这样的C代码

steing filename: @"c:\sai\chn_20151019_5932.txt";        
if(filename.exists(@"c:\sai\chn_20151019" + "*")               
{               
   delete.file(filename);               
}

您可以使用
枚举文件
,它将按模式在指定目录中查找文件。然后使用File.Delete

Directory.EnumerateFiles("c:\\sai","chn_20151019*",SearchOption.TopDirectoryOnly)
         .ToList()
         .ForEach(x=>File.Delete(x));

如果您使用的是.NET或更高版本-

string path = @"c:\sai";
bool exist = Directory.EnumerateFiles(path, "chn_20151019*").Any();
试试这个:

var dir = new DirectoryInfo(@"c:\sai\");

foreach (var file in dir.EnumerateFiles("chn_20151019*.txt")) {
    file.Delete();
}
编辑:

DirectoryInfo di = new DirectoryInfo(@"c:\sai\");
FileInfo[] files = di.GetFiles("chn_20151019*.txt")
                     .Where(p => p.Extension == ".txt").ToArray();
foreach (FileInfo file in files)
    try
    {
        File.Delete(file.FullName);
    }
    catch { }

使用
使用System.IO,然后:

foreach (var f in Directory.GetFiles(@"c:\sai\", "chn_20151019*.txt"))
{
    File.Delete(f);
}
如果您喜欢花哨(
使用系统;
):


enumeratefiles方法只能在.NET4.0之后使用,但我需要.NET3.5框架版本的代码。你能给我一个备用的吗code@SAILENDRASUDA:-更新了我的答案。请现在检查!
Array.ForEach(Directory.GetFiles(@"c:\sai\", "chn_20151019*.txt"), File.Delete);