Úvodná » ako » Ako sa Windows rozhoduje, ktorý z dvoch súborov s identickými časovými pečiatkami je novší?

    Ako sa Windows rozhoduje, ktorý z dvoch súborov s identickými časovými pečiatkami je novší?

    Čo to znamená, keď máte dva rovnaké súbory s rovnakými časovými pečiatkami, ale Windows hovorí, že jeden súbor je novší ako ten druhý? Ako to môže byť? Dnešný príspevok SuperUser Q & A pomáha zmätenému čitateľovi vyriešiť tajomstvo časovej pečiatky.

    Dnešná relácia otázok a odpovedí sa k nám pridelí zdvorilosťou SuperUser - podskupiny Stack Exchange, zoskupenia webových stránok typu Q & A.

    Otázka

    Čítačka SuperUser WBT chce vedieť, ako sa Windows rozhodne, ktorý z dvoch súborov s identickými časovými pečiatkami je novší:

    Keď systém Windows zobrazí podobné dialógové okno s zodpovedajúcimi časovými pečiatkami, ako určuje, ktorý z dvoch súborov je novší?

    Spočiatku som myslel, že systém Windows porovnáva atribút vytvorený dátumom a výsledok tohto porovnania používa na označenie jedného alebo druhého za novšie. Ak bol súbor skopírovaný do konkrétneho umiestnenia, môže mať dátum vytvorenia, kedy bola vytvorená kópia, a nie dátum vytvorenia pôvodného súboru. Avšak po jeho reprodukcii s iným súborom, ktorého výsledok je novší, sa zdá byť opakom:

    Výsledok je rovnaký pri kopírovaní alebo presúvaní súboru:

    A na pozadí, súbor v test2 je skôr vytvorená kópia súboru v test1.

    Ako sa systém Windows rozhodne, ktorý z dvoch súborov s identickými časovými pečiatkami je novší?

    Odpoveď

    Pripomienka SuperUser prispieva k nám:

    Časové pečiatky v systéme súborov NTFS majú rozlíšenie 100 nanosekund (0.0000001 s). Aj keď dialógové okno vlastností zobrazuje rovnakú zaokrúhlenú hodnotu, môže sa stať, že súbory boli vytvorené v desiatkach sekundy.

    Poznámka: Väčšina súborových systémov meria časy v μs alebo ns. FAT32 je trochu relikvie a zaokrúhľuje časové značky na dve sekundy.

    Vyskúšajte jednu z nasledujúcich metód na porovnanie časových pečiatok:

    • wmic datafile kde name = "c: \\ foo \\ bar.txt" getmodified

    Via PowerShell:

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

    Máte niečo doplniť vysvetlenie? Znie to v komentároch. Chcete sa dozvedieť viac odpovedí od iných používateľov technickej úrovne Stack Exchange? Pozrite sa na celý diskusný príspevok tu.

    Obrazový kredit: WBT (SuperUser)