【发布时间】:2015-03-16 10:03:30
【问题描述】:
我正在使用FileSystemWatcher 类来监视文件的大小变化。正在写入文件的软件会保持一个流打开并大约每五秒写入一次。
changed 事件仅在我打开 Windows 资源管理器并单击“刷新”以强制 Windows 更新列出的文件大小时触发。 (特别是 Windows 7。)
我知道 FileSystemWatcher 有点笨拙,但是除了定期使用 FileInfo 轮询文件之外,这里还有其他解决方案吗?例如。我可以让 Windows 更频繁地更新其文件统计信息吗?
请注意,“ModifiedAt”时间戳在写入软件打开文件句柄后永远不会更新。不确定 Windows 是否使用 ModifiedAt 标记的更新来触发重新计算其他文件统计信息。我已经尝试了所有的 NotifyFilters,但没有一个会在不强制 Windows 更新其文件统计信息的情况下触发。
【问题讨论】:
-
根据msdn.microsoft.com/en-us/library/…这里的评论,您可以检查文件的几个属性,而不仅仅是ModifiedAt(使用NotifyFilter)
-
确实;我已经在使用尺寸和属性 NotifyFilters。谢谢。
-
对不起,我没有从问题中看到它
-
不用担心。编辑了问题以澄清这一点。
-
我对@987654327@ 的体验并不好。我建议使用
Fileinfo进行投票。也许您可以调查使用 Windows API 调用的可能性? stackoverflow.com/questions/931093/…
标签: .net vb.net windows filesystems filesystemwatcher