Watching a Directory for Changes Java7 nio2 チュートリアルに従って、コード サンプルWatchDir.javaを使用してディレクトリの内容全体を再帰的に監視しました。
これは Linux と Mac ではうまく機能しますが、Windows (Vista と 7 でテスト済み) では、Windows エクスプローラーを使用してネストされた監視フォルダーを削除しようとすると、ファイルが削除されたときに「アクセスが拒否されました: このアクションを実行するには権限が必要です」のようなメッセージで失敗します。ネストされたディレクトリの 1 つに存在します。
たとえば、Windows でネストされたフォルダー ツリーを監視すると、次のようになります。
-- Folder A
-- Folder A1
-- File F
フォルダーAを削除しようとすると、前述のアクセス拒否エラーが発生します。ただし、次の場合は正常に機能します。
- フォルダ A1 を削除してからフォルダ A を削除します
- ファイルFを削除してからフォルダAを削除
nio2 WatchService を使用してネストされたディレクトリを再帰的に監視する方法はありますが、プログラムがネストされたファイルにアクセスしているように振る舞うことはありませんか?