Windows

Как 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)

Похожие посты
Windows

Драйверы для Windows 10

Windows

Лучшие приложения для фотографии на вашем Windows Phone

Windows

Команды командной строки для панели управления апплетами

Windows

Официальное приложение SmugMug теперь доступно для Windows Phone