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