問題タブ [watchservice]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1253 参照

java - Java nio WatchService: Windows ドライブ リストの監視

USB ドライブが接続されたときに通知を受け取りたい。そのため、Java sais:「ドライブ H: 作成されました」。WatchService でこれを行う方法はありますか? ルートディレクトリを監視しても機能しません。現在のドライブのルートを監視するだけです: Paths.get("/").register

0 投票する
2 に答える
3689 参照

java - Java 7 WatchService のリソースを解放する

Java 7 WatchService を使用してディレクトリを監視しています。監視しているディレクトリを常に変更します。私は例外に遭遇します:

java.io.IOException: ネットワーク BIOS コマンドの制限に達しました。

50 ディレクトリの後。新しいものを作成する前に、作成した各 WatchService で close() を呼び出すことは確かです。

この制限に遭遇しないように、WatchService を解放する適切な方法を知っている人はいますか?

ありがとう、

デイブ

0 投票する
1 に答える
250 参照

java - Java7:空でない新しいディレクトリを作成するときにすべてのファイルを検出する

私はWatchDogを実装して、ファイルの変更、削除、およびディレクトリへの追加を再帰的に探しています。Linuxを使用しています。プログラムはうまく機能し、Java7でそれを行うのは非常に簡単です。唯一のことは、いくつかのファイルを含むディレクトリを追加すると、含まれているすべてのファイルの追加を監視できないことです。問題は、新しいディレクトリを追加するときに、WatchDogがそれをWatchServiceに登録する必要があり、その間に追加されたファイルの一部(通常は1つまたは2つ)が失われることだと思います。WatchDogは、すべてのupdateEventを別のスレッドによって読み取られるblockingQueueに配置するスレッドです。

これがWatchDogです:http://pastebin.com/q5SW0iJF

誰かが同じ問題を経験したことがありますか?もしそうなら、どのようにそれを解決しましたか?

ありがとう

0 投票する
1 に答える
2574 参照

java - Java WatchService を使用してフォルダー内のフォルダーを監視する

フォルダーを監視するために、Java 7 で WatchService を試しています。WatchService に登録されているパスに追加されているファイルまたはフォルダーを監視したい。

登録されたパスにフォルダーを追加すると、ENTRY_CREATE として正しく検出され、watchEvent.context() でフォルダーの名前が返されます。しかし、そのフォルダーにフォルダーを再度追加すると、それは検出されますが、watchEvent.context() は同じフォルダーと ENTRY_MODIFY を返します。これは、そのフォルダーが別のフォルダーを追加することによって変更されているためです。

だから私はこれを理解していますが、構造内のすべてのフォルダーを登録する必要があるのか​​ 、それとも最上位のフォルダーを登録してリッスンするのか、作成して変更するのかわかりません

0 投票する
1 に答える
653 参照

java - コンテンツがコピーされる前にフォルダの作成を通知する Windows 上の Java WatchService

Java 7 と WatchService を使用して、フォルダーが (別の場所からコピーされて) フォルダーに追加されるタイミングを監視しようとしています。次に、新しく作成されたフォルダー内のファイルを処理したいと考えています。

OSX では、期待どおりに動作します。フォルダーとその内容がコピーされるまで、新しいフォルダーの作成の通知を受け取りません。しかし、Windows では、フォルダーの内容がコピーされる前に、フォルダーの作成時にキー イベントを受け取るため、フォルダー内のファイルを処理しようとすると、通常は最初のファイルだけが存在します。

私の現在の回避策は、フォルダー通知を受け取った後、10 秒間スリープして、その中のファイルがコピーされるのを待つことですが、フォルダーのサイズがかなり異なる可能性があるため、これはあまり満足のいくものではありません。ほとんどの時間。

OSX と Windows の違いはなぜですか? Windows で問題を解決するにはどうすればよいですか?

0 投票する
0 に答える
952 参照

java-7 - 登録されたディレクトリがネットワーク ドライブ上にある場合、Java 7 WatchService はイベントを生成しません。

これは 1 年前に他の場所で尋ねられたことは知っていますが、最新情報を探しています。

WatchService を使用して、そこに作成されている新しいファイルのディレクトリを監視する Java 7 のプログラムがあります。ローカル マシン (c:\NewFiles など) にディレクトリを登録すると、すべて問題ありません。ただし、ネットワークドライブ上のフォルダーをリッスンしようとすると、コンパイルして実行しますが、イベントの通知を受けていないように見えるため、すぐに終了します..これは私のコードのほんの一部です...

ディレクトリを登録します...

次に、イベントをチェックするループの最後に...

ここで、「ドライブにアクセスできません」という警告が常に表示されます。Java ファイルをこのネットワーク ディレクトリにコピーして、そこから実行しようとしましたが、同じ問題が発生します。

このように Watchservice をローカル マシンから実行して、ネットワーク ドライブ上のディレクトリへの変更をリッスンすることはできますか? ここで許可またはファイアウォールの問題が発生していますか? Windows 7 を使用していますが、ネットワーク ドライブも Windows 7 マシンにある可能性があります。

0 投票する
1 に答える
4510 参照

java - WatchService を使用してファイルの変更を検出する際に遅延が発生するのはなぜですか? (ジャワ)

ファイルがディレクトリに追加されると、WatchService がファイルを検出し、ファイルがファイル リストに追加されてさらに処理されるアプリケーションがあります。これは私のコードです

このコードは期待どおりに動作しますが、ファイル内のデータを非常に高速に処理する高性能アプリケーションを設計しています。したがって、ここでの問題は、ファイルの検出にかかる時間の不一致です。たとえば、最初はディレクトリにいくつかのファイルがあり、アプリケーションによって処理されますが、新しいファイルが追加されると、ファイルの検出に 4 ~ 5 秒かかるか、場合によっては 2 秒または 20 ミリ秒かかります。私の eofDelay 値は 10ms です。この矛盾の理由は何ですか?この実装を強化する方法はありますか? または、ディレクトリの変更に利用できる他の効率的なライブラリはありますか? ファイルの検出にかかる時間を最小限にして一貫性を持たせたいのですが、1 秒以上かかると非常にコストがかかります。この点で何か助けていただければ幸いです。:)

0 投票する
0 に答える
750 参照

java - Java WatchService ..ネットワーク上のディレクトリをリッスンする

//イベントのために[listen to directoriesすべて Windows で] ネットワーク経由で試みています。ネットワーク経由のディレクトリでは機能しないようです。CreateModifyDeleteWatchService

サードパーティのライブラリまたは代替品は高く評価されます。

リッスンするディレクトリが 50 以上あるため、ネットワーク ドライブをマッピングすることはできません。

0 投票する
0 に答える
439 参照

java - JSCH と WatchService を使用して新しいファイルのリモート SFTP サーバーを監視する

現在、JSCH を使用して SFTP クライアントを実装しています。これは今のところ私の目的にはうまく機能しますが、WatchService別のプロジェクトの調査中に、SFTP サーバーで新しいファイルを監視するために JSCH を使用して実装できるかどうか疑問に思いました。

私は、WatchService が動作するために Watchable オブジェクトを必要とするため、JSCH が Watchable をまったく実装していないことがわかる限り、現時点では不可能であると考えています。

上記の制限を考慮して、これをどのように達成できるかについて、これに関する経験やアイデアを持っている人はいますか?

0 投票する
1 に答える
1203 参照

java - WatchEvent から削除されたファイルの種類を特定する

、およびイベントWatchServiceのディレクトリ ツリーを監視する があります。問題は、 a のコンテキストがPath オブジェクトしか与えないことです。削除イベントでは、パスが通常のファイルのディレクトリを参照しているかどうかわかりません。ENTRY_CREATEENTRY_DELETEENTRY-MODIFYWatchEvent<?>

p私の質問は、パスが削除されたファイルまたはディレクトリを参照しているかどうかを判断する方法ですか? これは、API が公開するものでも可能ですか?