Hjemmeside » hvordan » Hvordan bestemmer Windows hvilke av to filer med identiske tidsstemmer som er nyere?

    Hvordan bestemmer Windows hvilke av to filer med identiske tidsstemmer som er nyere?

    Hva betyr det når du har to identiske filer med identiske tidsstemmer, men Windows sier at en fil er nyere enn den andre? Hvordan kan det være? Dagens SuperUser Q & A-innlegg hjelper en forvirret leser til å løse et tidsstempel mysterium.

    Dagens Spørsmål & Svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppering av Q & A-nettsteder.

    Spørsmålet

    SuperUser-leser WBT ønsker å vite hvordan Windows bestemmer hvilke av to filer med identiske tidsstemmer som er nyere:

    Når Windows viser en dialog som dette med matchende tidsstemmer, hvordan bestemmer den hvilken av de to filene som er nyere?

    Først trodde jeg at Windows sammenlignet datoopprettede attributter og brukte resultatet av den sammenligningen til å merke en eller den andre som nyere. Hvis en fil ble kopiert til et bestemt sted, kan det ha opprettelsesdato for når kopien ble laget i stedet for opprettelsesdatoen for den opprinnelige filen. Men etter å ha gjengitt det med en annen fil, synes resultatet av det som er nyere, å være motsatt:

    Resultatet er det samme om du kopierer eller flytter filen:

    Og for bakgrunnen er filen i test2 en tidligere laget kopi av filen i test1.

    Hvordan bestemmer Windows hvilken av to filer med identiske tidsstemmer som er nyere?

    Svaret

    SuperUser bidragsyter gravitasjon har svaret for oss:

    Tidsstempler i NTFS-filsystemet har en oppløsning på 100 nanosekunder (0.0000001 s). Selv om egenskapsdialogboksen viser samme avrundede verdi, kan det likevel være at filene ble opprettet innen tiende sekunder av hverandre.

    Merk: De fleste filsystemer måler ganger i μs eller ns. FAT32 er litt av en relikvie og runder timestamps til to sekunder.

    Prøv en av følgende metoder for å sammenligne fulltidsstemplene:

    • wmic datafile hvor navn = "c: \\ foo \\ bar.txt" få lastmodified

    Via PowerShell:

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

    Har du noe å legge til forklaringen? Lyder av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her.

    Image Credit: WBT (SuperUser)