file.lastModified () никогда не является тем, что было установлено с помощью file.setLastModified ()

У меня проблема с настройкой миллисекунд и чтением на Android 2.3.4 на Nexus One Это код:

File fileFolder = new File(Environment.getExternalStorageDirectory(), appName + "/"
    + URLDecoder.decode(folder.getUrl()));
if (fileFolder != null && !fileFolder.exists()) {
  fileFolder.setLastModified(1310198774);
  fileFolder.mkdirs();
  fileFolder.setLastModified(1310198774);
}

if (fileFolder != null && fileFolder.exists()) {
  long l = fileFolder.lastModified();
}

В этом небольшом тесте я пишу 1310198774, но результат, возвращаемый функцией lastModified (), равен 1310199771000.

Даже если я вырезал завершающую «000», разница в несколько минут.

Мне нужно синхронизировать файлы между веб-службой и устройством Android. Миллис последней модификации являются частью данных, отправляемых этой службой. Я устанавливаю миллисекунды для созданных / скопированных файлов и папок, чтобы проверить, должен ли файл / папка быть перезаписано.

Все работает, НО миллисекунды, возвращаемые файловой системой, отличаются от установленных значений.

Я почти уверен, что что-то не так с моим кодом, но я не могу его найти.

Заранее большое спасибо. HJW

11
задан Gray 18 January 2017 в 18:55
поделиться