Kotisivu » miten » Miten Windows päättää, kumpi kahdesta identtisestä aikaleimasta on uudempi?

    Miten Windows päättää, kumpi kahdesta identtisestä aikaleimasta on uudempi?

    Mitä tarkoittaa, kun sinulla on kaksi identtistä tiedostoa, joilla on identtiset aikaleimat, mutta Windows sanoo, että yksi tiedosto on uudempi kuin toinen? Miten se voi olla? Tämän päivän SuperUser Q&A -postin avulla sekava lukija voi ratkaista aikaleiman mysteerin.

    Nykypäivän Kysymys- ja vastaus -istunto tulee meille suotuisasti SuperUserin - Stack Exchange -alueen, yhteisöpohjaisen Q & A-sivustojen ryhmittymän - kautta..

    Kysymys

    SuperUser-lukija WBT haluaa tietää, miten Windows päättää, kumpi kahdesta samasta aikaleimasta on uudempi:

    Kun Windows näyttää tällaisen valintaikkunan vastaavilla aikaleimoilla, miten se määrittää, kumpi näistä kahdesta tiedostosta on uudempi?

    Aluksi ajattelin, että Windows on vertaillut luodun päivämäärän määritystä ja käyttänyt vertailun tulosta merkitsemään yhden tai toisen uudemmaksi. Jos tiedosto on kopioitu tiettyyn paikkaan, sillä voi olla luontipäivämäärä, jolloin kopio tehtiin, eikä alkuperäisen tiedoston luontipäivämäärä. Sen jälkeen kun se on toistettu toisella tiedostolla, jonka tulos on uudempi, näyttää olevan päinvastainen:

    Tulos on sama riippumatta siitä, kopioidaan tai siirretään tiedostoa:

    Taustalla test2: ssa oleva tiedosto on aiemmin tehty kopio testistä1.

    Miten Windows päättää, kumpi kahdesta identtisestä aikaleimasta on uudempi?

    Vastaus

    SuperUserin tekijän raskaus on meille vastaus:

    NTFS-tiedostojärjestelmässä olevien aikaleimojen resoluutio on 100 nanosekuntia (0,0000001 s). Vaikka ominaisuusikkunassa näkyy sama pyöristetty arvo, voi silti olla, että tiedostot luotiin kymmenesosassa toisistaan.

    Huomautus: Useimmat tiedostojärjestelmät mittaavat kertaa μs tai ns. FAT32 on vähän jäänne ja pyöristää aikaleimoja kahteen sekuntiin.

    Kokeile jotakin seuraavista tavoista vertailla kokoaikaisia ​​leimoja:

    • wmic datafile, jossa nimi = ”c: foo bar.txt” saa viimeisimmän muutoksen

    Via PowerShell:

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

    Onko jotain lisättävää selitykseen? Ääni pois kommenteista. Haluatko lukea lisää vastauksia muilta tech-savvy Stack Exchange -käyttäjiltä? Tutustu koko keskusteluketjuun täällä.

    Kuvaluotto: WBT (SuperUser)