私は問題を抱えています。私はルートフォルダとそのサブフォルダのすべての変更を検出FileSystemWatcher
のラッパーを書かれています。何もない:モノの下でFileSystemWatcher - 見ているサブディレクトリ
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = this.Root;
watcher.IncludeSubdirectories = true;
watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.LastAccess | NotifyFilters.DirectoryName | NotifyFilters.FileName;
watcher.Changed += new FileSystemEventHandler (watcher_Changed);
watcher.Deleted += new FileSystemEventHandler (watcher_Deleted);
watcher.Created += new FileSystemEventHandler (watcher_Created);
watcher.Renamed += new RenamedEventHandler (watcher_Renamed);
watcher.EnableRaisingEvents = true;
.NETでは、Windowsでは、それは魅力的に機能します。しかし、私はモノにコードを移植し、OSXの下でコードを実行したとき、それはルートフォルダでのみ正しく動作します。
イベントはすでにウォッチャーは私が
EventArgs.FullPath
プロパティを経由して取得パスが正しくないを開始時にルートの下に既存のフォルダ内の操作用に飼育されていない:私は今では気づいている
問題(私がpath_to_root/some/more/subdirs/some.fileにファイルをコピーするとき、私が得るパスは単にpath_to_root/some.fileです)。
unproperパスの問題がすでに1年前に報告された(そしてそれが解決されたように見える)が、私のモノは昨年12月から来ているされています(MonoDevelopのは、それは、それはバージョン4.0.0.0です参照]セクションで述べていますすべて私が配布について言うことができる)とバグはまだそこにある... 参照: https://bugzilla.xamarin.com/show_bug.cgi?id=5747
すべてのアイデア?繰り返しそのポーリングするファイルシステム独自のウォッチャを書いたりルート下のすべてのフォルダに対して個別のウォッチャーを開始する必要のない回避策がある場合、私は
おかげで、事前に...本当に好奇心!
であってもよく、これは助けることができる:[ありません-ネットfilesystemwatcher-仕事とモノの-MAC-OS] [1] [1]:http://stackoverflow.com/質問/ 5727652/does-net-filesystemwatcher-work-with-mono-on-mac-os –
このトピックを見て、残念ながら私はそこに自分のための助けを見つけることができません...ありがとう、しかし! – wojtuch
5747のバグ修正でシナリオが修正されなかった場合は、http://bugzilla.xamarin.com – knocte