29Aug

Comment Windows détermine-t-il lequel de deux fichiers avec des horodatages identiques est plus récent?

Qu'est-ce que cela signifie quand vous avez deux fichiers identiques avec des horodatages identiques, mais Windows dit qu'un fichier est plus récent que l'autre? Comment cela peut-il être? Le SuperUser Q & A post d'aujourd'hui aide un lecteur confus à résoudre un mystère d'horodatage.

Question d'aujourd'hui &La session de réponse nous est offerte par SuperUser, une subdivision de Stack Exchange, un regroupement communautaire de sites Web Q & A.

La question Lecteur

SuperUser WBT veut savoir comment Windows détermine lequel de deux fichiers avec des horodatages identiques est le plus récent:

Lorsque Windows affiche un dialogue comme celui-ci avec des horodatages correspondants, comment détermine-t-il lequel des deux fichiers est le plus récent?

Au début, je pensais que Windows comparait l'attribut date de création et utilisait le résultat de cette comparaison pour étiqueter l'un ou l'autre comme plus récent. Si un fichier a été copié dans un emplacement particulier, il peut avoir la date de création de lorsque la copie a été faite plutôt que la date de création du fichier d'origine. Cependant, après l'avoir reproduit avec un autre fichier, le résultat dont on est plus récent semble être le contraire:

Le résultat est le même que la copie ou le déplacement du fichier:

Et pour le fond, le fichier dans test2 est une copie dele fichier dans test1.

Comment Windows détermine-t-il lequel de deux fichiers avec des horodatages identiques est le plus récent?

La réponse

SuperUser contributeur grawity a la réponse pour nous:

Les horodatages dans le système de fichiers NTFS ont une résolution de 100 nanosecondes( 0.0000001 s).Même si la boîte de dialogue des propriétés affiche la même valeur arrondie, il se peut que les fichiers aient été créés en dixièmes de seconde l'un de l'autre.

Remarque: La plupart des systèmes de fichiers mesurent des temps en μs ou ns. FAT32 est un peu une relique et arrondit l'horodatage à deux secondes.

Essayez l'une des méthodes suivantes pour comparer les horodatages complets:

  • wmic datafile où name = "c: \\ foo \\ bar.txt" obtenir lastmodified

Par PowerShell:

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

Avez-vous quelque chose à ajouter à l'explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d'autres utilisateurs de Stack Exchange? Découvrez le fil de discussion complet ici.

Crédit d'image: WBT( SuperUser)