In che modo Windows decide quale dei due file con timestamp identici è più recente?
Che cosa significa quando hai due file identici con timestamp identici, eppure Windows dice che un file è più nuovo dell'altro? Come può essere? Il post di Q & A di SuperUser di oggi aiuta un lettore confuso a risolvere un mistero temporale.
La sessione di domande e risposte di oggi ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di siti Web di domande e risposte basato sulla comunità.
La domanda
Lettore SuperUser WBT vuole sapere come Windows decide quale dei due file con timestamp identici è più recente:
Quando Windows visualizza una finestra di dialogo come questa con timestamp corrispondenti, come determina quale dei due file è più recente?
Inizialmente, pensavo che Windows stesse confrontando l'attributo data di creazione e utilizzando il risultato di tale confronto per etichettare l'uno o l'altro come più recente. Se un file è stato copiato in una posizione specifica, potrebbe avere la data di creazione di quando è stata creata la copia anziché la data di creazione del file originale. Tuttavia, dopo averlo riprodotto con un altro file, il risultato di uno è più recente sembra essere l'opposto:
Il risultato è lo stesso sia per copiare o spostare il file:
E per lo sfondo, il file in test2 è una copia precedentemente creata del file in test1.
In che modo Windows decide quale dei due file con timestamp identici è più recente?
La risposta
Il contributo di SuperUser grawity ha la risposta per noi:
I timestamp nel file system NTFS hanno una risoluzione di 100 nanosecondi (0,0000001 s). Anche se la finestra di dialogo delle proprietà mostra lo stesso valore arrotondato, potrebbe comunque essere che i file siano stati creati in decimi di secondo l'uno dall'altro.
Nota: la maggior parte dei file system misura i tempi in μs o ns. FAT32 è un po 'di una reliquia e completa i timestamp a due secondi.
Prova uno dei seguenti metodi per confrontare i timestamp a tempo pieno:
- wmic datafile dove name = "c: \\ foo \\ bar.txt" get lastmodified
Via PowerShell:
- (Get-ChildItem c: \ foo \ bar.txt) .LastWriteTime.ToString ("o")
Hai qualcosa da aggiungere alla spiegazione? Audio disattivato nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla la discussione completa qui.
Immagine di credito: WBT (SuperUser)