Домашня » як » Як Windows вирішити, який з двох файлів з ідентичними штампи часу є більш новим?

    Як Windows вирішити, який з двох файлів з ідентичними штампи часу є більш новим?

    Що це означає, коли у вас є два ідентичних файли з ідентичними мітками часу, але Windows говорить, що один файл є новим, ніж інший? Як це може бути? Сьогоднішня посада SuperUser Q&A допомагає збентеженому читачеві вирішувати таємницю часу.

    Сьогоднішня сесія запитань та відповідей приходить до нас люб'язно SuperUser - підрозділ Stack Exchange, групування веб-сайтів із запитаннями та відповідями на рівні спільноти..

    Питання

    Читач SuperUser WBT хоче знати, як Windows вирішує, який з двох файлів з ідентичними часовими мітками є новими:

    Коли Windows відображає подібне діалогове вікно з відповідними мітками часу, як він визначає, який з цих двох файлів є новим?

    Спочатку я подумав, що Windows порівнював атрибут створення дати і використовував результат цього порівняння для позначення одного або іншого як нового. Якщо файл був скопійований у певне місце, він може мати дату створення копії, а не дату створення вихідного файлу. Проте після відтворення його іншим файлом, результат якого є новим, здається протилежним:

    Результат однаковий - чи копіювати або переміщувати файл:

    А для фону файл test2 є раніше зробленою копією файлу test1.

    Як Windows вирішує, який з двох файлів з ідентичними мітками часу є новими?

    Відповідь

    Гравітет учасника SuperUser має відповідь для нас:

    Мітки часу в файловій системі NTFS мають роздільну здатність 100 наносекунд (0,0000001 с). Навіть якщо діалогове вікно властивостей показує одне й те саме округлене значення, все одно може бути, що файли були створені протягом десятих секунди один одного.

    Примітка. Більшість файлових систем вимірює час у мкс або ns. FAT32 - це трохи реліквії і округляє мітки часу до двох секунд.

    Спробуйте порівняти повні штампи часу одним з наступних способів:

    • wmic datafile, де name = ”c: \ foo .t.t.t.

    Через PowerShell:

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

    Маєте щось додати до пояснення? Звучить в коментарях. Хочете прочитати більше відповідей від інших технологічних користувачів Stack Exchange? Перегляньте повний потік обговорення тут.

    Кредит на зображення: WBT (суперкористувач)