Pagrindinis » kaip » Kaip „Windows“ nusprendžia, kuris iš dviejų failų yra identiškesnis?

    Kaip „Windows“ nusprendžia, kuris iš dviejų failų yra identiškesnis?

    Ką reiškia, kai turite du identiškus failus su vienodais laiko antspaudais, tačiau „Windows“ sako, kad vienas failas yra naujesnis nei kitas? Kaip tai gali būti? Šiandienos „SuperUser“ Q&A pranešimas padeda supainiotam skaitytojui išspręsti laiko žymos paslaptį.

    Šiandienos „Klausimų ir atsakymų“ sesija mums suteikiama pagal „SuperUser“ - „Stack Exchange“ padalinį, bendruomenės sukurtą „Q&A“ svetainių grupavimą.

    Klausimas

    „SuperUser“ skaitytuvas WBT nori sužinoti, kaip „Windows“ nusprendžia, kuris iš dviejų failų, turinčių identiškų laiko žymių, yra naujesnis:

    Kai „Windows“ pateikia tokį dialogą su atitinkamais laiko žymenimis, kaip ji nustato, kuris iš dviejų failų yra naujesnis?

    Iš pradžių maniau, kad „Windows“ lygino sukurtą atributą ir naudodama šio palyginimo rezultatą, kad būtų pažymėtas vienas ar kitas kaip naujesnis. Jei failas buvo nukopijuotas į tam tikrą vietą, jis gali turėti kūrimo datą, kai kopija buvo sukurta, o ne pirminio failo kūrimo datą. Tačiau, atkurus jį su kitu failu, kurio rezultatas yra naujesnis, atrodo, yra priešingas:

    Rezultatas yra tas pats, jei kopijuojate arba perkeliate failą:

    Ir fone test2 failas yra anksčiau atliktas testo 1 failo kopija.

    Kaip „Windows“ nusprendžia, kuris iš dviejų failų su vienodais laiko žymenimis yra naujesnis?

    Atsakymas

    „SuperUser“ prisidedančiųjų grawity turi mums atsakymą:

    Laiko žymos NTFS failų sistemoje yra 100 nanosekundžių (0,0000001 s) skiriamoji geba. Net jei savybių dialogas rodo tą pačią apvalią vertę, vis tiek gali būti, kad failai buvo sukurti per dešimtą sekundę viena nuo kitos.

    Pastaba: dauguma failų sistemų matuoja laiką μs arba ns. „FAT32“ yra šiek tiek relikto ir apvalinama laiko žymos iki dviejų sekundžių.

    Išbandykite vieną iš šių būdų, kad palygintumėte viso laiko žymes:

    • wmic datafile, kur vardas = ”c: foo bar.txt“ gauti paskutinį kartą

    „PowerShell“:

    • (Get-ChildItem c: foo bar.txt) .LastWriteTime.ToString („o“)

    Ar ką nors papildyti paaiškinimu? Garsas išjungtas komentaruose. Norite perskaityti daugiau atsakymų iš kitų „tech-savvy Stack Exchange“ vartotojų? Čia rasite visą diskusijų temą.

    Vaizdo kreditas: WBT („SuperUser“)