Hjemmeside » hvordan » Hvordan bestemmer Windows, hvilke af to filer med identiske tidsstempler, der er nyere?

    Hvordan bestemmer Windows, hvilke af to filer med identiske tidsstempler, der er nyere?

    Hvad betyder det, når du har to identiske filer med identiske tidsstempler, men Windows siger, at en fil er nyere end den anden? Hvordan kan det være? Dagens SuperUser Q & A-indlæg hjælper en forvirret læser med at løse et tidsstempel mysterium.

    Dagens Spørgsmål & Svar session kommer til os med venlig hilsen af ​​SuperUser-en underafdeling af Stack Exchange, en community-driven gruppe af Q & A-websteder.

    Spørgsmålet

    SuperUser-læser WBT ønsker at vide, hvordan Windows beslutter, hvilke af to filer med identiske tidsstempler, der er nyere:

    Når Windows viser en dialog som denne med matchende tidsstempler, hvordan bestemmer den hvilken af ​​de to filer der er nyere?

    Først troede jeg, at Windows sammenlignede den datooprettede attribut og brugte resultatet af den sammenligning med etiketten den ene eller den anden som nyere. Hvis en fil blev kopieret til et bestemt sted, kan det have oprettelsesdatoen for, hvornår kopien blev foretaget snarere end oprettelsesdato for den oprindelige fil. Men efter at have gengivet det med en anden fil, synes resultatet af det ene at være det modsatte:

    Resultatet er det samme, uanset om du kopierer eller flytter filen:

    Og for baggrunden er filen i test2 en tidligere lavet kopi af filen i test1.

    Hvordan bestemmer Windows hvilke af to filer med identiske tidsstempler, der er nyere?

    Svaret

    SuperUser bidragyder grawity har svaret for os:

    Tidsstempler i NTFS-filsystemet har en opløsning på 100 nanosekunder (0.0000001 s). Selvom egenskabsdialogboksen viser den samme afrundede værdi, kan det stadig være, at filerne blev oprettet inden for tiendedele af hinanden af ​​hinanden.

    Bemærk: De fleste filsystemer måler tider i μs eller ns. FAT32 er lidt af en relikvie og runder timestamps til to sekunder.

    Prøv en af ​​følgende metoder til at sammenligne fuldtidsstemplerne:

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

    Via PowerShell:

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

    Har du noget at tilføje til forklaringen? Lyde af i kommentarerne. Vil du læse flere svar fra andre tech-savvy Stack Exchange brugere? Tjek den fulde diskussionstråd her.

    Billedkredit: WBT (SuperUser)