【问题标题】:Windows file system stats update frequencyWindows 文件系统统计信息更新频率
【发布时间】:2015-03-16 10:03:30
【问题描述】:

我正在使用FileSystemWatcher 类来监视文件的大小变化。正在写入文件的软件会保持一个流打开并大约每五秒写入一次。

changed 事件仅在我打开 Windows 资源管理器并单击“刷新”以强制 Windows 更新列出的文件大小时触发。 (特别是 Windows 7。)

我知道 FileSystemWatcher 有点笨拙,但是除了定期使用 FileInfo 轮询文件之外,这里还有其他解决方案吗?例如。我可以让 Windows 更频繁地更新其文件统计信息吗?

请注意,“ModifiedAt”时间戳在写入软件打开文件句柄后永远不会更新。不确定 Windows 是否使用 ModifiedAt 标记的更新来触发重新计算其他文件统计信息。我已经尝试了所有的 NotifyFilters,但没有一个会在不强制 Windows 更新其文件统计信息的情况下触发。

涉及:At what times are files updated on windows

【问题讨论】:

  • 根据msdn.microsoft.com/en-us/library/…这里的评论,您可以检查文件的几个属性,而不仅仅是ModifiedAt(使用NotifyFilter)
  • 确实;我已经在使用尺寸和属性 NotifyFilters。谢谢。
  • 对不起,我没有从问题中看到它
  • 不用担心。编辑了问题以澄清这一点。
  • 我对@9​​87654327@ 的体验并不好。我建议使用Fileinfo 进行投票。也许您可以调查使用 Windows API 调用的可能性? stackoverflow.com/questions/931093/…

标签: .net vb.net windows filesystems filesystemwatcher


【解决方案1】:

您需要使用一个计时器,它会在事件发生或状态更改时立即启动。您不需要刷新浏览器,即使浏览器未打开,它也会触发。

【讨论】:

  • 定期轮询是我在问题中列出的解决方法之一。
  • 那么我认为您可能需要使用 FileSystemWatcher 但我不知道其他方式,除非您可以创建自己的函数来关注文件更改状态或事件,但我仍然猜这也将属于定期轮询,因为它会定期轮询文件的状态。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-15
  • 1970-01-01
  • 2018-03-21
  • 1970-01-01
  • 2014-10-09
  • 1970-01-01
相关资源
最近更新 更多