【问题标题】:Determine if folder ACL was modified since specific date in .NET确定文件夹 ACL 自 .NET 中的特定日期以来是否已修改
【发布时间】:2011-02-08 15:16:35
【问题描述】:

我需要确定文件夹 ACL 自特定日期以来是否被修改。 Windows 是否存储此类信息?

FileSystemInfo 提供属性 LastWriteTime,但是当我更改目录的权限时,此日期不会更改。

有没有办法获取这些信息?

问候, 杰克。

【问题讨论】:

  • 你为什么要这样做?作为性能优化?您可以获取当前值并将其与某些应用程序的已知旧值进行比较。
  • 是的,这是一种性能优化。需要定期检查大量文件夹的权限更改。我想跳过自上次检查以来没有更改的那些。

标签: .net windows time acl last-modified


【解决方案1】:

较低级别的 NT API 在 FILE_BASIC_INFORMATION 结构中公开了一个名为 ChangedTime 的字段;它被描述为:

指定上次更改文件的时间。

它本质上是任何元数据(我假设它包括安全描述符)最后一次修改的时间戳。当然,您无法知道 是什么 更改导致时间戳被更新,但我认为这是开箱即用的最佳方法。

还有USN Journal,不过我相信这个功能默认是禁用的。

【讨论】:

  • 感谢您的建议。不幸的是,该字段的值在 ACL 修改后没有改变。只读更改后都没有。
猜你喜欢
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-26
相关资源
最近更新 更多