4

Название говорит само за себя. Где сохраняются упомянутые даты (и другие метаданные файла)?

Они часть файла или они отдельные? Если у меня есть файл, измените его так, чтобы его содержимое не изменилось (удалите письмо, а затем запишите его обратно) ... изменив дату изменения. Являются ли эти два результирующих файла одинаковыми по содержанию (одинаковые двоичные файлы)?

1 ответ1

7

Обе метки времени отделены от содержимого файла. Они хранятся вместе с другими метаданными в inode (в большинстве файловых систем Unix) или в эквиваленте Windows - запись файла в "таблице основных файлов". В целом, это очень специфично для используемой файловой системы - FAT и ext4, а btrfs и NTFS делают это совсем по-другому.

Время модификации в Windows обновляется при закрытии файла, если был изменен хотя бы один байт. Независимо от того, являются ли новые данные одинаковыми или разными, не имеет значения, если вызывается функция WriteFile() или связанная функция; новое содержание может даже быть точным соответствием.

Время доступа обновляется, когда файл закрывается после того, как он был открыт для чтения или записи - даже если он не был каким-либо образом изменен. (Это исключает чтение метаданных, так как метаданные находятся вне файла. В Windows программы резервного копирования могут также запросить время, чтобы остаться неизменным.) Обычно существуют дополнительные ограничения на то, когда обновляется это время: например, только если старое время было раньше времени изменения (относительное время Linux), или только если старое время было более часа назад (старая Windows) или не обновлялось в все (более новая Windows).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .