Правила для "Дата изменения" в папках в проводнике Windows
Как Windows Explorer определяет поле "Дата изменения" для папок? [Помимо этого: я знаю, что это задание с точки зрения конкретного исследователя, но поведение может быть полезно для кодирования операций поиска/сортировки типов)
Есть ли окончательное описание этого в любом месте - поиски Microsoft, MSDN, Google и Qaru не увенчались успехом.
Личные эксперименты показывают, что в дереве папок:
- когда папка/файл добавляется/удаляется в папке, обновляется дата содержащаяся папка.
- когда содержимое файла изменено, папка с содержимым не изменяется
Тем не менее, я смотрю на некоторые каталоги, которые, похоже, не соответствуют этим основным правилам - с помощью дерева, которое у меня есть (даты в формате DD/MM/YYYY):
folder (date created: 2/2/2006, date modified: 2/3/2006)
folder (date created: 2/2/2006, date modified: 2/3/2006)
folder (date created: 2/2/2006, date modified: 1/6/2009)
file (date created: 27/3/2009, date modified: 2/2/2006)
Ответы
Ответ 1
Это не конкретный проводник, это связано с NTFS.
См. http://support.microsoft.com/kb/299648 для некоторых правил.
Примечание. Модифицированное время можно отключить с помощью параметра файловой системы, поэтому вы никогда не должны полагаться на него. Любые предлагаемые надежные методы будут оценены.
Ответ 2
Отказ от ответственности: я сам тестировал все это на Windows 10. Я не мог найти авторитетный источник, документирующий все эти поведения. Вполне возможно, что я где-то ошибся.
Последнее изменение папки обновлено для этих действий:
- новый файл или папка непосредственно в целевой папке
- переименован файл или папка непосредственно в целевую папку
- удаленный файл или папка непосредственно в целевой папке
- hardlink create/delete/rename - то же, что и файлы
- файл/папка symlink create/delete/rename
- каталог junction create/delete/rename
Для этих действий не обновляется:
- измененное содержимое файла непосредственно в целевой папке
- Изменить цель символической ссылки или соединения, содержащейся в целевой папке
- изменение файла или подпапки/изменение даты изменения
- редактировать основные атрибуты (скрытый/архив/система) прямого дочернего элемента
- Сжатие/шифрование NTFS прямого дочернего элемента
- все, что происходит в подпапке - буквально ничего
- изменение атрибутов самой папки
- изменение владельца /ACL самой папки
- владелец или ACL прямого изменения ребенка
- если папка - это соединение каталога, изменение целевого
- добавление/удаление потоков данных в прямой дочерний файл