例: デスクトップにサブフォルダー "Desktop/sub" があります。
デスクトップのみが登録され、一度 WatchService を開始した場合、サブフォルダーのコンテンツを変更します..ENTRY_MODIFY をトリガーする必要がありますか? 私は試してみましたが、そうではありません。登録されたフォルダー (この場合はデスクトップ) 内のファイルを変更する場合にのみ機能します。
OCPJP7 の模擬試験では、「Desktop/sub」内のファイルを削除するなど、「Desktop/sub」などのサブフォルダーを実際に変更しても、イベントをトリガーする必要があるため、この質問をするだけです。
しかし、もう一度試してみましたが、うまくいきません。
コードは次のとおりです。
WatchKey key = ws.poll(5, TimeUnit.SECONDS);
if (key ==null)
{
continue;
}
List<WatchEvent<?>> lista = key.pollEvents();
for (WatchEvent<?> event : lista)
{
switch(event.kind().toString())
{
case "ENTRY_CREATE": System.out.println("There has been a creation over here: "+event.context());break;
case "ENTRY_MODIFY": System.out.println("There has been a modification over here: "+event.context());break;
case "ENTRY_DELETE": System.out.println("There has been a deletion over here: "+event.context());
}
key.reset();
}
前もって感謝します。