Как проверить, был ли файл скопирован в выходной каталог, потому что он был новее, чем ранее? - PullRequest
0 голосов
/ 03 августа 2020

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

I знайте, что это тот случай, когда новый файл копируется в выходной каталог, поскольку настройки файла для json файлов должны копироваться, если файл более новый.

Но как мне использовать это в моем приложения, в настоящее время я просто очищаю свою базу данных и повторно вставляю все, но поскольку большая часть данных устарела (то есть не менялась в течение нескольких месяцев), мне не нужно повторно вставлять их, а только те, которые изменились.

Итак, как проверить, какие файлы были изменены / перезаписаны в выходном каталоге из моего приложения?

В настройках проекта указано, что мои файлы копируются в выходной каталог, если они более новые, но как я могу из своего приложения определить, является ли файл более новым или нет?

Я должен использовать выходной каталог, чтобы проверить, был ли файл изменен.

1 Ответ

0 голосов
/ 03 августа 2020

Вы не можете использовать время переопределения выходного файла каталога только как информацию для определения, следует ли c синхронизировать изменения. Выходной контент создается при действиях сборки и публикации sh, поэтому, если файл перезаписывается, это делается в этих точках, а не при запуске приложения. Вы можете собрать и sh приложение несколько раз, не запуская его, и возникает вопрос: когда файл перезаписывается?

После этого вы можете запускать и останавливать приложение несколько раз, и возникает вопрос: перезаписан ли ваш файл и синхронизированы с БД?

Вы можете: (1) использовать хэши или (2) реализовать механизм для управления версиями ваших файлов (File.GetLastWriteTime (путь) и записывать это в БД после синхронизации данных) или (3) реализовать механизм, чтобы явно сказать, что вы хотите синхронизировать c эти файлы (некоторый флаг конфигурации, который будет сброшен после синхронизации c, или копия отредактированного файла, который будет удален после синхронизации c)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...