【问题标题】:Incorrect FileSystemWatcher behaviour with SambaSamba 的 FileSystemWatcher 行为不正确
【发布时间】:2009-08-13 17:00:57
【问题描述】:

我在 Windows 服务器上使用 .NET FileSystemWatcher 来监视 Windows 服务器上的文件夹。 我还可以使用 Samba 从 Linux 服务器访问相同的文件夹。 如果我将文件从监视文件夹复制到其他地方,则会为源文件生成更改事件。 这种行为正确吗?它似乎改变了文件上的“最后访问”时间。我怎样才能忽略这种类型的变化?

【问题讨论】:

  • FileSystemWatcher 是在 Windows 机器上运行还是在 Linux 机器上针对 Samba 共享运行? (您的标题听起来像是 Samba 问题,但问题不匹配)。
  • 是的,在 Windows 上。 Windows 复制命令没有相同的效果。

标签: .net filesystemwatcher samba


【解决方案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;

或类似的。

【讨论】:

    猜你喜欢
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    相关资源
    最近更新 更多