2011-10-27 21 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);