Mein Programm überwacht jede Dateiänderung im angegebenen Dateipfad, wenn eine neue Datei kommt, wird eine Benachrichtigung ausgelöst, aber wird fehlschlagen, wenn im übergeordneten Ordner ein Unterordner erstellt wird. Der Dateipfad für den übergeordneten Ordner wird Monitor C:/play
, aber wenn es einen neuen Unterordner wie im übergeordneten Ordner, mein Programm erkennt, aber wenn ich versuche, eine Datei in abc-Ordner einfügen, kann mein Programm nicht um zu erkennen, dass eine neue Datei erstellt wurde. Ich habe various methods getestet, aber leider kann ich es nicht arbeiten lassen.Anyone in der Lage, mir jede Anleitung auf meinem Referenzlink zu liefern? Mein Beispielcode folgt der Anleitung in meinem Referenzlink
Dies ist mein Quellcode nach dem Hinzufügen in die Funktion Unterverzeichnis
Unterverzeichnis und Hauptverzeichnis Überwachung in Java
public class fileStatus
{
public static void main(String [] args) throws InterruptedException
{
try(WatchService svc = FileSystems.getDefault().newWatchService())
{
Map<WatchKey, Path> keyMap = new HashMap<>();
Path path = Paths.get("C:/play");
fileStatus fd = new fileStatus();
fd.registerAll(path);
keyMap.put(path.register(svc,
StandardWatchEventKinds.ENTRY_CREATE),
path);
WatchKey wk ;
do
{
wk = svc.take();
Path dir = keyMap.get(wk);
for(WatchEvent<?> event : wk.pollEvents())
{
WatchEvent.Kind<?> type = event.kind();
Path fileName = (Path)event.context();
System.out.println("\nThe new file :"+fileName+ "Event :" +type); //print the new file name
}
}while(wk.reset());
}
catch(IOException e)
{
System.out.println("Problem io in somewhere");
}
}
private void registerAll(Path path) throws IOException
{
Files.walkFileTree(path, new SimpleFileVisitor<Path>()
{
@SuppressWarnings("unused")
public FileVisitResult preVisitDireotry(Path path,BasicFileAttributes attrs) throws IOException
{
return FileVisitResult.CONTINUE;
}
});
}
}
This ist wie dieser Code und meine Ordnerstruktur meine Referenz suchen, für die Überprüfung
/root
/Folder A
/test.txt
/Folder B
/abc.txt
Sie sollten an Ihrer Absicht arbeiten. – AxelH