Skip to content

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

4 de sierpień de 2021
how does windows decide which of two files with identical time stamps is newer 00

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

Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser — pododdziału Stack Exchange, społecznościowej grupy witryn internetowych z pytaniami i odpowiedziami.

Pytanie

Czytnik SuperUser WBT chce wiedzieć, w jaki sposób 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?

1628062174 177 W jaki sposob system Windows decyduje ktory z dwoch plikow

Na początku myślałem, że Windows porównuje atrybut daty utworzenia i używa wyniku tego porównania do oznaczenia jednego lub drugiego jako nowszego. Jeśli plik został skopiowany do określonej lokalizacji, może zawierać datę utworzenia kopii, a nie datę utworzenia oryginalnego pliku. Jednak po odtworzeniu go innym plikiem, którego wynik jest nowszy, wydaje się być odwrotny:

1628062174 485 W jaki sposob system Windows decyduje ktory z dwoch plikow

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

1628062174 348 W jaki sposob system Windows decyduje ktory z dwoch plikow

A jako tło plik w test2 jest wcześniej utworzoną kopią pliku w test1.

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

Odpowiedź

Grawitacja współtwórcy 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ść, nadal może się zdarzyć, że pliki zostały utworzone w odstępach dziesiątych sekundy od siebie.

Uwaga: większość systemów plików mierzy czas w μs lub ns. FAT32 to trochę relikt i zaokrągla znaczniki czasu do dwóch sekund.

Wypróbuj jedną z następujących metod, aby porównać pełne znaczniki czasu:

  • plik danych wmic, gdzie name=”c:foobar.txt” jest ostatnio modyfikowany

Przez PowerShell:

  • (Get-ChildItem c:foobar.txt).LastWriteTime.ToString(„o”)

Masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych doświadczonych technologicznie użytkowników Stack Exchange? Sprawdź pełny wątek dyskusji tutaj.

Źródło obrazu: WBT (Superużytkownik)

Czy ten post był pomocny?