Domovská » jak » Jak se Windows rozhoduje, který ze dvou souborů s identickými časovými razítky je novější?

    Jak se Windows rozhoduje, který ze dvou souborů s identickými časovými razítky je novější?

    Co to znamená, když máte dva identické soubory s identickými časovými razítky, ale Windows říká, že jeden soubor je novější než ten druhý? Jak to může být? Dnešní příspěvek SuperUser Q & A pomáhá zmatenému čtenáři vyřešit tajemství časové známky.

    Dnešní zasedání Otázky a odpovědi nás přichází s laskavým svolením SuperUser - podřízené rozdělení Stack Exchange, které je založeno na komunitě prostřednictvím skupin webových stránek.

    Otázka

    Čtečka SuperUser WBT chce vědět, jak systém Windows rozhodne, který ze dvou souborů s identickými časovými razítky je novější:

    Když systém Windows zobrazí podobné dialogové okno s odpovídajícími časovými razítky, jak zjistí, který z obou souborů je novější?

    Nejdříve jsem si myslel, že Windows porovnává atribut vytvořený datem a pomocí výsledku tohoto porovnání označuje jednu nebo druhou za novější. Pokud byl soubor zkopírován do určitého umístění, může mít datum vytvoření, kdy byla kopie provedena, a nikoli datum vytvoření původního souboru. Nicméně po reprodukci s jiným souborem, jehož výsledek je novější, se zdá být opakem:

    Výsledek je stejný, ať kopírování nebo přesouvání souboru:

    A na pozadí, soubor v test2 je dříve vytvořená kopie souboru v test1.

    Jak systém Windows rozhodne, který ze dvou souborů s identickými časovými razítky je novější?

    Odpověď

    Příspěvek Grawity přispěvatele SuperUser má pro nás odpověď:

    Časové razítky v systému souborů NTFS mají rozlišení 100 nanosekund (0.0000001 s). I když dialogové okno vlastností zobrazuje stejnou zaokrouhlenou hodnotu, mohlo by se stát, že soubory byly vytvořeny v desetinách sekundy.

    Poznámka: Většina systémů souborů měří časy v μs nebo ns. FAT32 je trochu památka a zaokrouhlení časových značek na dvě sekundy.

    Vyzkoušejte jednu z následujících metod k porovnávání časových razítků:

    • wmic datafile, kde jméno = "c: \\ foo \\ bar.txt" getmodified

    Přes PowerShell:

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

    Musíte něco přidat k vysvětlení? Vyjměte v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.

    Image Credit: WBT (SuperUser)