Я отслеживаю создание и изменение файла в каталоге с помощью jar commons-io. Я могу получить результаты в консоли Eclipse.
final long pollingInterval = 5 * 1000;
String FOLDER = "C:/test";
File folder = new File(FOLDER);
folder.setReadable(true);
if (!folder.exists()) {
// Test to see if monitored folder exists
throw new RuntimeException("Directory not found: " + FOLDER);
}
FileAlterationObserver observer = new FileAlterationObserver(folder);
FileAlterationMonitor monitor =
new FileAlterationMonitor(pollingInterval);
FileAlterationListener listener = new FileAlterationListenerAdaptor() {
// Is triggered when a file is created in the monitored folder
@Override
public void onFileCreate(File file) {
try {
// "file" is the reference to the newly created file
System.out.println("File created: "
+ file.getCanonicalPath());
getNewMethod(file);// here in this method i am not able to return since its void.
} catch (IOException e) {
e.printStackTrace(System.err);
}
}
@Override
public void onFileChange(File file) {
try {
System.out.println("File modified: "
+ file.getCanonicalPath());
getNewMethod(file); // here in this method i am not able to return since its void.
} catch (IOException e) {
e.printStackTrace(System.err);
}
}
};
observer.addListener(listener);
monitor.addObserver(observer);
monitor.start();
Проблема в том, что я не могу вернуть имя файла, когда он вызывает методы onFileCreate и onFileChange. Как этого добиться? А также я пытаюсь вызвать один метод внутри onFileCreate и onFileChange, который возвращает список. Как вернуть список? Потому что в этом слушателе я не вижу возвращаемого параметра, кроме void.
//Вызов нового метода
public String getNewMethod(File newfile) throws IOException{
System.out.println("getList method called : "+newfile.getCanonicalPath());
return "redirect:finalPage"; // here the redirection is not happening
}
Когда я вижу, что запускается событие изменения/создания файла, мне нужно, чтобы изменения были обновлены в jsp. Как этого добиться?