If-Koubou

Как Windows определя кой от двата файла с идентични времеви марки е по-нов?

Как Windows определя кой от двата файла с идентични времеви марки е по-нов? (Как да)

Какво означава това, когато имате два идентични файла с идентични времеви марки, но Windows казва, че един файл е по-нов от другия? Как може да бъде? Днешната публикация "SuperUser Q & A" помага на объркания читател да разреши загадка за времето.

Днешната сесия за въпроси и отговори ни идва с любезното съдействие на SuperUser - подразделение на Stack Exchange - обединяване на уеб сайтове с въпроси и отговори.

Въпроса

Reader на SuperUser WBT иска да разбере как Windows решава кой от двата файла с идентични времеви марки е по-нов:

Когато Windows показва подобен диалогов прозорец със съвпадащи времеви марки, как определя кой от двата файла е по-нов?

Отначало мислех, че Windows сравнява атрибута, създаден за дата, и използва резултата от това сравнение, за да обозначи един или друг като по-нов. Ако даден файл е копиран в определено местоположение, може да има датата на създаване, когато е направено копието, а не датата на създаване на оригиналния файл. Но след възпроизвеждането му с друг файл, чийто резултат е по-нов, изглежда обратното:

Резултатът е същият, независимо дали копиране или преместване на файла:

И за фон, файлът в test2 е предварително направено копие на файла в test1.

Как Windows определя кой от двата файла с идентични времеви марки е по-нов?

Отговорът

Слуховият сътрудник на SuperUser има отговор за нас:

Печатът на време във файловата система NTFS има разделителна способност от 100 наносекунди (0.0000001 s). Дори ако диалоговият прозорец за свойства показва една и съща закръглена стойност, може да се окаже, че файловете са създадени в рамките на десети от секунда един от друг.

Забележка: Повечето файлови системи измерват времена в μs или ns. FAT32 е малко реликва и закръглява тайм-марки за две секунди.

Изпробвайте един от следните методи, за да сравните печатите на пълен работен ден:

  • wmic filefile, където име = "c: \ foo \ bar.txt" getmodified

Via PowerShell:

  • (Get-ChildItem c: \ foo \ bar.txt) .LastWriteTime.ToString ("o")

Имате ли нещо, което да добавите към обяснението? Звучи в коментарите. Искате ли да прочетете повече отговори от други потребители на Stack Exchange? Вижте цялата тема на дискусията тук.

Image Credit: WBT (SuperUser)