У меня есть утилита, которая обрабатывает набор файлов в каталоге - процесс относительно медленный (и файлов много), поэтому я попытался оптимизировать процесс, обрабатывая только те файлы, которые имеют «последнее изменение» позже, чем дата последней обработки.
Обычно это работает хорошо, однако я обнаружил, что копирование файла не меняет дату последнего изменения, и поэтому существуют различные сценарии, включающие копирование файлов, в которых определенные файлы, которые изменились, пропускаются процессом, например :
- Пользователь обрабатывает каталог в 9:00.
- Затем файл копируется из этого каталога и изменяется так, чтобы он имел дату последнего изменения 9: 30
- Затем каталог обрабатывается снова в 10:00
- Измененный файл затем копируется обратно в каталог в 10:30
- Наконец, каталог обрабатывается снова в 11:00
Поскольку дата изменения данного файла - 9:30, а каталог был последний раз обработан в 10:00, файл пропускается, когда его не должно быть.
К сожалению, вышеизложенное имеет тенденцию происходить слишком часто в определенных ситуациях (например, в среде совместной работы с контролем источников и т. Д.). Ясно, что моя логика ошибочна - мне действительно нужна дата «последнего изменения или копирования». такая вещь существует?
Если это не так, есть ли другой способ быстро и с достаточной достоверностью определить, изменился ли данный файл?