3

大学の分散システムのコースでプロジェクトを行っています。私は Dropbox ( getdropbox.com ) に似たものを作成することを計画していますが、集中型ではないピアツーピアのひねりを加えています。このために、ディレクトリ構造の変更を検出する方法が必要です。Dropbox はこれをどのように行っていると思いますか? それらの実装は非常にうまく機能します。Windows の win32 API から FileSystemWatcher を使用しているのか、Linux と Mac に類似したプラットフォームに依存するものを使用しているのか疑問に思います。

4

4 に答える 4

4

Mac OS X Leopard には、ファイル システムの変更の通知を登録できる FSEvents API があります。

http://googlemac.blogspot.com/2008/03/file-system-change-logger-for-leopard.html

于 2008-11-25T14:47:10.607 に答える
3

Linux 側には、恐ろしく文書化されていない inotify があります。glib を使用してもかまわない場合は、非常に使いやすいGFileMonitorクラスがあります。ただし、移植可能ではないと思うので、Linux専用になります。

于 2008-11-25T14:54:50.370 に答える
3

eduffy は inotify について言及しました ....

inotifyに基づいて、これをしばらく前に見ました。incron と呼ばれ、cron のような機能を incron に追加します。

http://www.linux.com/feature/144666

于 2008-11-25T15:04:05.580 に答える
1

私の知る限り、DropBox (など) は Windows サービス (ま​​たは Linux/Mac 側のデーモン) を使用してファイル システムを監視します。これを .Net で作成するのは非常に簡単で、このシナリオは通常、Windows サービスの典型的な例です。C++ で同様のことを行うのもかなり簡単だと思います。

これは、Windows でサービスを作成する方法に関する .Net の簡単なチュートリアルへのリンクです。ソリューションのために必要なことは、Timer.Tick() イベントにモニター ロジックを追加することだけです。

http://www.developer.com/net/csharp/article.php/2173801

于 2008-11-25T14:49:10.460 に答える