1

最近のプロジェクトでは、Windows上のJavaからマップされたSamba共有のファイルシステムの変更を検出する必要があります。作成、更新、および削除します。現在、イベントを探すためにファイルのリストとそれらの変更されたタイムスタンプを維持するフォルダーポーリングを使用しています。

しかし、私の問題は、このフォルダーのポーリングが特定の時間(たとえば、10秒ごと)にのみフォルダーを覗き見するため、更新されたファイルが2つのポーリングの間に認識されずに2回更新される可能性があることです。

そのmappepSamba共有でファイルイベントが発生するたびに、Java内のウィンドウからイベントを取得する方法はありますか?

ありがとう!

4

2 に答える 2

1

Javaには、O/Sからのファイル通知を処理するための現在のIOAPIには何もありません。

Java7には新しいIOAPIJSR-203があり、監視ファイルAPIがあり、ネイティブO / S通知を使用するか、通知がファイルの変更を検出するためにサポートされていない場合はポーリングを使用します。

それまでの間、誰かがJNIを介してO/S通知にフックできるライブラリを実装しているかどうかを確認できます。IntelliJIDEAはこの目的のためにネイティブライブラリを使用していると思います。

Sourceforgeを見ると、jfilenotifyが見つかりましたが、使用したことはありません。

または、サンプリング頻度を増やすか(ただし、これによりファイルシステムが破壊され始めます)、ファイル名/フォルダーにバージョン番号を追加してファイルの書き方を変更し、何かが変更されたことを簡単に確認できるようにすることもできます。

于 2010-03-08T08:54:23.190 に答える
0

このフォーラムのエントリによると、 TeamDev JNIWrapperは私が望むようにこれを行うことができます。コピーを購入しました。ありがとうございます

グリーツ、ガハド

于 2010-03-08T09:30:01.110 に答える