Windows 资源管理器中文件夹的“修改日期”规则

Posted

技术标签:

【中文标题】Windows 资源管理器中文件夹的“修改日期”规则【英文标题】:Rules for "Date Modified" of folders in Windows Explorer 【发布时间】:2010-11-04 17:47:42 【问题描述】:

Windows 资源管理器如何确定文件夹的“修改日期”字段? [旁白:我知道这是从特定于资源管理器的角度提出的问题,但这种行为可能对编码搜索/排序类型的活动很有用]

在任何地方都有明确的描述吗 - 对 Microsoft、MSDN、Google 和 Stack Overflow 的搜索均未成功。

个人实验似乎表明在文件夹树中:

    在文件夹中添加/删除文件夹/文件时,包含文件夹的日期会更新。 修改文件内容时,包含文件夹不受影响

但是,我正在查看一些似乎不符合这些基本规则的目录 - 沿着我拥有的树向下运行(日期为 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)

【问题讨论】:

通过实验,删除单个文件有时会影响父文件夹的修改日期,有时不会,有时会有约 60 秒的延迟。 (sch)在硅上的房子。 @crokusek 你确定不只是资源管理器没有立即刷新吗?试试 dir 或 F5。它总是会立即更新。 在本地重复问题失败后,我能够在测试连接到远程 Windows Server 2012 文件系统(如 \\MachName\C)的本地文件资源管理器(Win 10 v1703)时验证我的原始评论$\一些目录。在这种情况下,使用本地文件资源管理器或远程桌面文件资源管理器删除文件不会“立即”在父文件夹上本地显示更新(多个新文件资源管理器 +F5、多个窗口,甚至 PowerShell 目录)。但是,远程桌面文件资源管理器确实显示了更新。目录信息一定有一些错误的缓存。 显然,另一个会导致文件夹更改其修改日期的“规则”是使用 Word 或 Excel 简单地打开(不保存或更改)文档。看这里:superuser.com/questions/808831/… 【参考方案1】:

这不是资源管理器特定的,这是与 NTFS 相关的。

请参阅 http://support.microsoft.com/kb/299648 https://web.archive.org/web/20080219020154/http://support.microsoft.com/kb/299648 了解一些规则。

注意:修改时间可以用文件系统选项禁用,所以你不应该依赖它。任何建议的可靠方法将不胜感激。

【讨论】:

1:D:\NTFS1 - The created folder is the same and the modified stamp changes. 2:D:\NTFS1\NTFS2 - Both the created folder changes and the modified folder stay the same. - 谢谢MS,像往常一样干净! :) 我认为这很清楚。您在移动文件夹时引用了他们的示例。如果您移动 NTFS2,您不会创建新文件夹,因此创建日期不会更改,您也不会修改文件夹,因此其修改日期不会更改。由于您将 NTFS2 移动到 NTFS1 中,因此您实际上是在修改 NTFS1,因此其修改日期会发生变化。我认为这完全合乎逻辑。 当您说“可以使用文件系统选项禁用修改时间”时,我找不到任何证据。你是说访问时间吗?这是另一篇关于修改时间的非常具体的 MSDN 文章:“关于文件时间戳的唯一保证是在关闭进行更改的句柄时正确反映文件时间。” msdn.microsoft.com/en-us/library/windows/desktop/…【参考方案2】:

免责声明:我自己在 Windows 10 上测试了所有这些。我找不到记录所有这些行为的权威来源。我完全有可能在某个地方犯了错误。

文件夹的最后修改时间更新这些操作:

直接在目标文件夹中新建文件或文件夹 直接在目标文件夹中重命名文件或文件夹 直接在目标文件夹中删除文件或文件夹 硬链接创建/删除/重命名 - 与文件相同 文件/文件夹符号链接创建/删除/重命名 目录连接创建/删除/重命名

这些操作未更新

直接在目标文件夹中修改文件内容 编辑目标文件夹中包含的符号链接或联结的目标 文件或子文件夹的创建/修改日期更改 编辑直接子级的基本属性(隐藏/存档/系统) 直接子代的 NTFS 压缩/加密更改 子文件夹中发生的任何事情——实际上是任何事情 更改文件夹本身的属性 更改文件夹本身的所有者/ACL 更改直接子项的所有者或 ACL 如果文件夹是目录连接,则更改目标 向直接子文件添加/删除 alt 数据流

【讨论】:

谢谢,所以(对 NTFS 缺乏更深入的了解,但有一些 FAT32)这表明一个文件夹可以被解释为一个“文件”,其数据包含包含的文件/子文件夹名称和指针,但不是它们的元数据,因此只有名称或指针的修改会更新修改日期。我假设网络共享 NTFS 的行为相同,但没有检查 @TobiasKienzler 是的,我认为这是一个很好的总结方式。 太好了,谢谢。在某种程度上这是有道理的,虽然有时我希望文件/子文件夹的修改也会修改文件夹日期,但它会使更改检测更容易...... 添加:写入目录的备用数据流更新上次修改时间。 令人惊讶的是,我可以重命名文件夹并且修改日期不会改变。这违反了最小意外原则。

以上是关于Windows 资源管理器中文件夹的“修改日期”规则的主要内容,如果未能解决你的问题,请参考以下文章

在 FAR 管理器中按日期对文件进行排序

在 Windows 中,当我在 Windows 资源管理器中双击一个文件时会发生啥?

Windows 资源管理器中未显示文件大小

从 IntelliJ 在 Windows 资源管理器中打开包含目录

WPF:将虚拟文件拖放到 Windows 资源管理器中

Windows 10 删除资源管理器中7个文件夹