#c# #asp.net
#c# #asp.net
Вопрос:
следующие обычные файлы (date_time.zip ) будет генерироваться с интервалом в 15 минут в ASP.NET сайт с Таймером.
1027_0100.zip, 1027_011*.zip, 1027_0130.zip, ...
Мой вопрос в том, что мне нужен механизм для восстановления файлов, которые каким-то образом пропущены в течение 3 дней, например 1026_0000.zip . Какую структуру данных / алгоритм вы бы порекомендовали использовать для реализации?
PS: я намерен использовать другой таймер для регулярного восстановления отсутствующих файлов.
Спасибо!
Комментарии:
1. нужно ли проверять файловую систему на наличие отсутствующих файлов или внутреннюю структуру данных?
Ответ №1:
Поскольку схема именования известна, а место, куда отправляются файлы, известно. Вам просто нужно сгенерировать имя для каждого потенциального файла, а затем проверить его существование с помощью System.Io.file .Существует. Если этот вызов завершается неудачно, создайте заново файл.
Ответ №2:
Я предложу немного другое решение: вместо того, чтобы повторно запрашивать диск, просто используйте 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);