2016-08-04 4 views
-1

Problem: Предположим, у вас есть файл .txt с некоторыми данными, и что вы хотите сделать, это проверить, обновлен ли этот файл с онлайновой базой данных, с которой он был первоначально загружен.Проверьте, обновлен ли файл .txt

Answer: Поскольку фиксированная веб-страница была исправлена, я бы проверил тег Last-Modified в файле HTTP и сравнил его с файлом, который у меня есть на моем компьютере.

Catch: Если пользователь скачал более старую версию файла он будет появляться на своей системе, что она была создана на день был загружен, а затем, когда он будет перекрестные ссылки с его HTTP аналогом его казалось бы, это актуально.

Любые идеи?

ответ

2

Предполагая, что файл .txt не был затронут после загрузки и что он будет загружен только из одного HTTP-адреса, тогда проверка даты должна быть прекрасной. Если вы обновили файл HTTP с момента загрузки, файл .txt будет старше HTTP-файла.

Кроме того, если файл небольшой, вы можете просто загрузить и заменить его, а не просто сравнивать даты.

1

Лучше не полагаться на «последние измененные» коды дат, поскольку они могут меняться без изменения данных.

Простейшим и наиболее полным решением будет загрузка новой копии данных по мере необходимости.

Более элегантные решения потребуют от вас контроля над веб-страницей.

Например, у вас может быть текущая HASH текстового файла на веб-странице. Вы можете вычислить HASH вашего локального файла, сравнить его с сервером, а затем загрузить файл, если это необходимо.

+0

Я думал о первом решении, которое вы предлагаете, и хотя он полностью доказан, он содержит небольшой риск накладных расходов на программу. На данный момент общее количество файлов, которые мне нужны для компиляции моей программы, составляет 10-15 файлов по 2 Кбайта каждый, что ничего. Но мы также пытаемся достичь масштабируемости для нашего кода. Скажем, мы хотим вычислить информацию о 1000+ файлах, что тогда произойдет? Что касается вашего второго решения, можете ли вы указать мне некоторые реализации о локальных HASH? – Jack

Смежные вопросы