If-Koubou

W jaki sposób system Windows decyduje, który z dwóch plików z identycznymi znacznikami czasu jest nowszy?

W jaki sposób system Windows decyduje, który z dwóch plików z identycznymi znacznikami czasu jest nowszy? (Jak)

Co to znaczy, gdy masz dwa identyczne pliki z identycznymi znacznikami czasu, ale Windows mówi, że jeden plik jest nowszy od drugiego? Jak to możliwe? Dzisiejszy post z pytaniami i odpowiedziami dla SuperUser pomaga zagmatwanemu czytelnikowi rozwiązać zagadkę czasu.

Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, społecznościowego forum z pytaniami i odpowiedziami.

Pytanie

Czytnik SuperUser WBT chce wiedzieć, jak system Windows decyduje, który z dwóch plików z identycznymi znacznikami czasu jest nowszy:

Kiedy system Windows wyświetla takie okno dialogowe z pasującymi znacznikami czasu, w jaki sposób określa, który z dwóch plików jest nowszy?

Najpierw myślałem, że system Windows porównuje datę utworzenia atrybutu i użyje wyniku tego porównania do oznaczenia jednej lub drugiej jako nowszej. Jeśli plik został skopiowany do określonej lokalizacji, może mieć datę utworzenia kopii, a nie datę utworzenia oryginalnego pliku. Jednak po odtworzeniu go z innym plikiem wynik, z którego jeden jest nowszy, wydaje się być odwrotny:

Wynik jest taki sam, niezależnie od tego, czy kopiujesz, czy przenosisz plik:

W tle plik w wersji testowej2 jest wcześniej utworzoną kopią pliku w teście 1.

W jaki sposób system Windows decyduje, który z dwóch plików z identycznymi znacznikami czasu jest nowszy?

Odpowiedź

Nadawca SuperUser ma dla nas odpowiedź:

Znaczniki czasu w systemie plików NTFS mają rozdzielczość 100 nanosekund (0.0000001 s). Nawet jeśli okno dialogowe właściwości pokazuje tę samą zaokrągloną wartość, może to oznaczać, że pliki zostały utworzone w dziesiątych częściach sekundy.

Uwaga: Większość systemów plików mierzy czasy w μs lub ns. FAT32 to trochę reliktu i zaokrągla sygnatury czasowe do dwóch sekund.

Wypróbuj jedną z następujących metod porównywania pełnych znaczników czasu:

  • wmic datafile gdzie name = "c: \ foo \ bar.txt" zostaje zmodyfikowane

Przez PowerShell:

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

Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.

Image Credit: WBT (SuperUser)