2009-08-13 14 views
0

Windowsサーバー上の.NET FileSystemWatcherを使用して、Windowsサーバー上のフォルダを監視しています。 私はSambaを使ってLinuxサーバから同じフォルダにアクセスすることもできます。 監視フォルダから別の場所にファイルをコピーすると、ソースファイルの変更イベントが生成されます。 この現象は正しいですか?それはファイルの '最後にアクセスされた'時間を変更するようです。このような変更を無視するにはどうすればよいですか?SambaでFileSystemWatcherの動作が正しくない

+0

WindowsボックスまたはLinuxボックスでFileSystemWatcherがSamba共有に対して実行されていますか? (あなたのタイトルはSambaの問題のように聞こえるが、質問は一致しない)。 –

+0

はい、Windowsの場合。 Windowsコピーコマンドは同じ効果を持ちません。 – Liam

答えて

1

「最終アクセス日時」は、Windowsプログラムによって一貫して設定されません。たとえば、Windowsのファイルプロパティコンテキストメニューを表示すると、この時間がリセットされます。あなたが述べているように、Windowsのコピーでは「最後のアクセス」時間は設定されませんが、Sambaを使用しているWindowsサーバ上のファイルのコピーは、Sambaの内部ドライバで実行されます。

あなたの唯一の回避策は、私は恐れて、あなたのFileSystemWatcherでフィルタを使用して「最終アクセス」の時間を無視することです:

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

または類似。

関連する問題