0

プロジェクト内の特定のディレクトリを監視するために、nio.2 クラスのウォッチ サービス API を使用しています (OS プラットフォーム Ubuntu 11.10)。変更が行われるたびに、たとえば abc.json という名前の新しいファイルが監視対象ディレクトリに追加された場合、最初に CREATED イベントが発生し、次にすぐに MODIFIED イベントが発生します。これは、OS が最初に 0 バイトのファイルを作成してから変更するために発生することがわかりました。MODIFIED イベントではなく CREATE イベントのみを発生させるには、 http://java.dzone.com/news/how-watch-file-system-changesにあるコードにどのような変更を加える必要がありますか。

次に、MODIFY イベントが発生すると、event.context().toString(); メソッドは、CREATED または DELETED イベントによって指定されたファイル名の代わりに、この.goutputstream-N2Z89V のような出力を提供します。変更されたファイル名を取得するにはどうすればよいですか?

4

1 に答える 1

0

データに対して何らかの処理を行う必要がある場合は、Modifyイベントを処理することをお勧めします。これは、作成時にファイルのバイト数がゼロ (空のファイル) であるためです。

これを試してファイル名を取得してください

Path _directoryToWatch;
String path = _directoryToWatch.resolve(watchEvent.context()).toString();
于 2012-09-10T09:46:04.663 に答える