Как Windows решает, какой из двух файлов с одинаковыми временными метками новее?
Что это значит, когда у вас есть два одинаковых файла с одинаковыми временными метками, но Windows говорит, что один файл новее, чем другой? Как это может быть? Сегодняшний пост SuperUser Q & A помогает запутанному читателю разгадать тайну отметки времени.
Сегодняшняя сессия вопросов и ответов пришла к нам благодаря SuperUser - подразделению Stack Exchange, группе веб-сайтов вопросов и ответов, управляемой сообществом..
Вопрос
Считыватель SuperUser WBT хочет знать, как Windows решает, какой из двух файлов с одинаковыми отметками времени новее:
Когда Windows отображает диалоговое окно, подобное этому, с соответствующими метками времени, как оно определяет, какой из двух файлов новее?
Сначала я думал, что Windows сравнивает атрибут даты создания и использует результат этого сравнения, чтобы пометить одно или другое как более новое. Если файл был скопирован в определенное место, он может иметь дату создания, когда была сделана копия, а не дату создания исходного файла. Тем не менее, после воспроизведения его с другим файлом, результат которого является более новым, кажется противоположным:
Результат одинаков при копировании или перемещении файла:
И для фона, файл в test2 является ранее сделанной копией файла в test1.
Как Windows решает, какой из двух файлов с одинаковыми отметками времени новее?
Ответ
SuperUser вкладчик благодарность имеет ответ для нас:
Метки времени в файловой системе NTFS имеют разрешение 100 наносекунд (0,0000001 с). Даже если в диалоговом окне свойств отображается одно и то же округленное значение, файлы могут быть созданы с точностью до десятых долей секунды друг от друга..
Примечание. Большинство файловых систем измеряют время в мкс или нс. FAT32 немного реликтовый и округляет временные метки до двух секунд.
Попробуйте один из следующих способов для сравнения отметок полного времени:
- wmic datafile где name = ”c: \\ foo \\ bar.txt” получить последний измененный
Через PowerShell:
- (Get-ChildItem c: \ foo \ bar.txt) .LastWriteTime.ToString («o»)
Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полным обсуждением здесь.
Изображение предоставлено: WBT (SuperUser)