Не рассчитывайте на дату изменения файла.
Странные программы (антивирусы и тому подобное) - не проблема, более того, что вы просто не можете рассчитывать на синхронизацию времени клиента и сервера.
Почему бы не сделать простой расчет различий или хэшей? Вы не можете получить лучшее сравнение, чем это.
Принимая во внимание соображения производительности, вы можете использовать следующую эвристику:
- Если дата не изменилась, файл, очевидно, тот же
- Если дата изменилась, содержимое файла может измениться, а может и не измениться (например:
touch
ed). В этом случае, чтобы получить окончательный ответ, вы должны изучить файл как-то .
Итог: дата изменения всегда может дать вам истинный отрицательный результат (файл не изменился), но иногда может дать ложный положительный результат - и в этом случае вы должны проверить.