[解決済み] WatchServiceで(ディレクトリ全体ではなく)1つのファイルの変更を監視することはできますか?
2023-09-01 19:37:51
質問
ディレクトリではなく、ファイルを登録しようとしたところ
java.nio.file.NotDirectoryException
が投げられます。ディレクトリ全体ではなく、1つのファイルの変更をリッスンすることは可能でしょうか?
どのように解決するのですか?
ディレクトリ内の必要なファイルのイベントをフィルタリングすればよいのです。
final Path path = FileSystems.getDefault().getPath(System.getProperty("user.home"), "Desktop");
System.out.println(path);
try (final WatchService watchService = FileSystems.getDefault().newWatchService()) {
final WatchKey watchKey = path.register(watchService, StandardWatchEventKinds.ENTRY_MODIFY);
while (true) {
final WatchKey wk = watchService.take();
for (WatchEvent<?> event : wk.pollEvents()) {
//we only register "ENTRY_MODIFY" so the context is always a Path.
final Path changed = (Path) event.context();
System.out.println(changed);
if (changed.endsWith("myFile.txt")) {
System.out.println("My file has changed");
}
}
// reset the key
boolean valid = wk.reset();
if (!valid) {
System.out.println("Key has been unregisterede");
}
}
}
ここでは、変更されたファイルが "myFile.txt" であるかどうかをチェックし、もしそうであれば何らかの処理を行います。
関連
-
NullPointerException - java.lang.
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] Javaでネストされたループから抜け出すには?
-
[解決済み] なぜゲッターとセッター/アクセッサーを使うのですか?
-
[解決済み] java.lang.UnsupportedClassVersionError を修正する方法。サポートされていないメジャー.マイナーバージョン
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] HashMapを直接(リテラルに)初期化する方法は?
-
[解決済み] Androidでファイルをダウンロードし、ProgressDialogで進捗を表示する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限です。タイプ 'JPEGCodec' は API ではない ☞My Blog Github ☜ ホームページを見る
-
無効な文字定数
-
-bash: java: コマンドが見つからない 解決方法
-
コンストラクタDate()が未定義である問題
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
Java JDKのダイナミックプロキシ(AOP)の使用と実装の原理分析
-
Java の double データ型における 0.0 と -0.0 の問題
-
java 365*1000*60*60*24 計算問題
-
アクセス制限の解決方法: ---- in Java
-
[解決済み] Javaによるファイル変更リスナー