Samba 的 FileSystemWatcher 行为不正确
我在 Windows 服务器上使用 .NET FileSystemWatcher 来监视 Windows 服务器上的文件夹。 我还可以使用 Samba 从 Linux 服务器访问同一文件夹。 如果我将文件从监视的文件夹复制到其他位置,则会为源文件生成更改事件。 这种行为正确吗? 它似乎更改了文件的“上次访问”时间。 我怎么能忽略这种类型的变化呢?
I am using a .NET FileSystemWatcher on a Windows server to watch a folder on a Windows server.
I also have access to the same folder from a Linux server using Samba.
If I copy a file from the watched folder to somewhere else, a change event is generated for the source file.
Is this behaviour correct? It seems to change the 'last accessed' time on the file. How can I ignore this type of change?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Windows 程序设置的“上次访问”时间不一致:例如,在 Windows 中显示文件属性上下文菜单将重置该时间。 正如您所说,Windows 复制不会设置“上次访问”时间,但使用 Samba 的 Windows 服务器上的文件副本会设置“上次访问”时间,因为 Samba 的内部驱动程序会执行复制。
我担心,您唯一的解决方法是使用 FileSystemWatcher:
或类似的过滤器来忽略“上次访问”时间。
The "last accessed" time is inconsistently set by Windows programs: for instance, displaying the file properties context menu in Windows will reset this time. As you state, Windows Copy does not set the "last access" time, but a copy of a file on a Windows server using Samba does as it's Samba's internal drivers doing the copy.
Your only workaround, I fear, is to ignore the "last access" time using a filter in your FileSystemWatcher:
or similar.