我在 Windows 服务器上使用 .NET FileSystemWatcher 来监视 Windows 服务器上的文件夹。我还可以使用 Samba 从 Linux 服务器访问相同的文件夹。如果我将文件从监视文件夹复制到其他地方,则会为源文件生成更改事件。这种行为正确吗?它似乎改变了文件上的“最后访问”时间。我怎么能忽略这种类型的变化?
问问题
1166 次
1 回答
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;
或类似的。
于 2009-08-30T12:43:50.027 回答