2011-10-27 17 views
0

下面的常規文件(date_time.zip)將在具有Timer的ASP.NET站點中以15分鐘的間隔生成。C#:生成常規文件的機制

1027_0100.zip, 1027_011*.zip, 1027_0130.zip, ...

我的問題是需要一種機制來恢復被莫名其妙地錯過了3天之內的文件,如1026_0000.zip。你會推薦使用什麼數據結構/算法來實現?

PS:我打算使用另一個Timer來定期恢復丟失的文件。

謝謝!

+0

將你要檢查文件系統的缺失文件或內部數據結構? –

+0

@Marc,文件系統。 – Ricky

回答

1

由於命名方案是知道的,並知道文件的去向。您只需生成每個潛在文件的名稱,然後使用System.Io.file.Exists檢查它的存在。如果該呼叫失敗,則重新生成該文件。

1

我會提出一個稍微不同的解決方案:而不是反覆查詢盤,只需使用Directory.GetFiles(...)和LINQ針對:

string[] files_that_should_exist = YourMethodToGenerateExistingFilenames(); 
string[] files_in_dir = System.IO.Directory.GetFiles(output_path); 

var missing_files = files_that_should_exist.Except(files_in_dir); 

foreach(string file in missing_files) YourMissingFileGenerateMethod(file);