29Aug

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

click fraud protection

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 høflighed af SuperUser-en underafdeling af Stack Exchange, en community-drevet gruppe af Q & A-websteder.

Spørgsmål

SuperUser læser WBT ønsker at vide, hvordan Windows beslutter, hvilke af to filer med identiske tidsstempler 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 datoen oprettede attributter 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 oprettelsesdatoen for den oprindelige fil. Efter at have gengivet det med en anden fil, synes resultatet derimod at være det modsatte:

instagram viewer

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

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

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

Svaret

SuperUser bidragydergravity 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.

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å sidstmodificeret

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)