2015-10-19 58 views
0

我有一個文件作爲c:\ sai \ chn_20151019_5932.txt。這裏5932是分和秒格式。 59分32秒。當我們在同一天再次運行包時,文件夾中的現有文件應該被刪除,但是由於秒數我無法刪除文件。 我需要這樣的C#代碼。代碼找到部分文件名的文件的存在

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

回答

0

您可以使用EnumerateFiles,這將在指定的目錄模式查找文件。 ,然後只用File.Delete

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

,如果你使用的是.NET或以上 -

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

試試這個:

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 { } 
+0

enumeratefiles方法後,才能.NET 4.0中使用,但我需要.NET 3.5 Framework版本的代碼。你能否給一個替代代碼 –

+0

@SAILENDRASUDA: - 更新我的答案。請立即檢查! –

+1

謝謝!它的工作.. –

0

使用using System.IO;,則:

foreach (var f in Directory.GetFiles(@"c:\sai\", "chn_20151019*.txt")) 
{ 
    File.Delete(f); 
} 

如果你想成爲幻想(using System;):

Array.ForEach(Directory.GetFiles(@"c:\sai\", "chn_20151019*.txt"), File.Delete); 
相關問題