2009-08-13 47 views
0

我在Windows服務器上使用.NET FileSystemWatcher觀察Windows服務器上的文件夾。 我也可以使用Samba從Linux服務器訪問相同的文件夾。 如果我將文件從觀察文件夾複製到其他地方,則會爲源文件生成更改事件。 這種行爲是否正確?它似乎改變了文件上的'上次訪問'時間。我怎樣才能忽略這種改變?Samba不正確的FileSystemWatcher行爲

+0

FileSystemWatcher是否在Windows盒子或Linux Box上運行在Samba共享上? (你的標題聽起來像Samba問題,但問題不匹配)。 – 2009-08-13 17:05:38

+0

是的,在Windows上。 Windows複製命令不具有相同的效果。 – Liam 2009-08-13 17:13:41

回答

1

「上次訪問」時間由Windows程序設置不一致:例如,顯示Windows中的文件屬性上下文菜單將在這次重置。如您所述,Windows複製不會設置「上次訪問」時間,但使用Samba的Windows服務器上的文件副本可以做到,因爲它是Samba的內部驅動程序。

你唯一的解決辦法,總歸是你的FileSystemWatcher的使用過濾器忽略「上次訪問」時間:

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

或相似。