Samba的FileSystemWatcher行为不正确

时间:2009-08-13 17:00:58

标签: .net filesystemwatcher samba

我在Windows服务器上使用.NET FileSystemWatcher来查看Windows服务器上的文件夹。 我也可以使用Samba从Linux服务器访问同一文件夹。 如果我将文件从监视文件夹复制到其他位置,则会为源文件生成更改事件。 这种行为是否正确?它似乎改变了文件上的“上次访问”时间。我怎样才能忽略这种变化?

1 个答案:

答案 0 :(得分:1)

Windows程序不一致地设置“上次访问”时间:例如,在Windows中显示文件属性上下文菜单将重置此时间。正如您所述,Windows Copy不会设置“上次访问”时间,但使用Samba的Windows服务器上的文件副本会执行,因为Samba的内部驱动程序正在执行此操作。

我担心,您唯一的解决方法是使用FileSystemWatcher中的过滤器忽略“上次访问”时间:

FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = "c:\yourpathhere";
watcher.NotifyFilter = NotifyFilters.LastWrite 
   | NotifyFilters.FileName | NotifyFilters.DirectoryName;

或类似。