Как вы знаете, Windows теперь поддерживает автономные / онлайн файлы. Другими словами, содержимое файла может быть размещено в облаке, но информация о файле размещена на локальном компьютере, и приложения считают, что файл действительно находится здесь.
Однако я нашел здесь проблему. У меня есть несколько файлов в папке onedrive, и я делаю некоторую синхронизацию с локальными файлами (за пределами папки onedrive).
Когда файл находится в автономном режиме (содержимое файла находится на локальном компьютере), нет проблем при сравнении времени изменения файла с копией файла, размещенной на компьютере (вне папки onedrive). Однако, если один и тот же файл находится только в сети (содержимое файла находится в облаке onedrive), время модификации будет другим!
Например:
Local machine <> OneDrive
128 809 273 928 753 750 vs 128 809 273 920 000 000
128 809 274 038 597 500 vs 128 809 274 030 000 000
Четко видно, что существует проблема разрешения времени. Похоже на onedrive есть 1сек. разрешение, но NTFS файл 100 наносекунд.
Итак, есть идеи, как с этим бороться? Конечно, я могу проверить FILE_ATTRIBUTE_OFFLINE
и уменьшите разрешение времени проверяемого файла. Однако это не выглядит хорошо для меня.
Задача ещё не решена.