0

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

4

1 に答える 1

1

「最後にアクセスした」時間は、Windows プログラムによって一貫性なく設定されます。たとえば、Windows でファイル プロパティのコンテキスト メニューを表示すると、今回はリセットされます。あなたが述べているように、Windows コピーは「最終アクセス」時刻を設定しませんが、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 に答える