サンバとの誤ったFileSystemWatcherの挙動
-
13-09-2019 - |
質問
私は、Windowsサーバー上のフォルダを監視するには、Windowsサーバー上で.NET FileSystemWatcherを使用しています。 また、私はサンバを使用してLinuxサーバから同じフォルダへのアクセス権を持っています。 私はどこか別の場所に監視フォルダからファイルをコピーする場合、変更イベントは、ソースファイルに対して生成されます。 この動作は正しいですか?ファイルに「最後にアクセスし」時間を変更するようです。どのように私はこの種の変更を無視することができますか?
解決
「最後にアクセスし、」時間が一貫性のWindowsプログラムによって設定されます。例えば、Windowsでファイルのプロパティのコンテキストメニューを表示すると、この時間はリセットされます。あなたが状態として、Windowsのコピーは、「最終アクセス」の時間を設定していないが、それはコピーをやってSambaの内部のドライバーだとサンバを使用して、Windowsサーバー上のファイルのコピーがありません。
あなたの唯一の回避策は、私は恐れて、あなたのFileSystemWatcherでフィルタを使用して「最終アクセス」の時間を無視することです。
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = "c:\yourpathhere";
watcher.NotifyFilter = NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
または類似の
所属していません StackOverflow