Я хочу отправить предупреждение, если последний измененный файл в каталоге старше 24 часов. Я использовал подсказки от этих двух вопросов:Поиск последнего измененного файла старше 24 часов в Java
How do I find the last modified file in a directory in Java?
Changing Java Date one hour back
и придумали:
File dir = new File("/path/to/dir");
File[] files = dir.listFiles();
if (files.length == 0) {
return null;
}
File lastModifiedFile = files[0];
for (int i = 1; i < files.length; i++) {
if (lastModifiedFile.lastModified() < files[i].lastModified()) {
Date modifiedDate = new Date(files[i].lastModified());
return modifiedDate;
}
}
Date currentDate = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(currentDate);
cal.add(Calendar.HOUR, -24);
Date alertDate = cal.getTime();
if (modifiedDate.before(alertDate)){
return true;
} else {
return false;
}
Однако я получаю «не может найти символ» ModifiedDate. Я понимаю, что его, потому что modifiedDate не может быть замечен последним оператором if, но если я поместил его и alertDate в начальный цикл цикла, я получу «отсутствующий оператор возврата».
Любые идеи?
Спасибо за подсказку, но я попробовал это так и получил «Missing return Statement» – sansSpoon
Привет, Джером, спасибо, что сработало. Этот код на самом деле всего лишь маленький скриптлет, который находится внутри готового Java-планирования и программы просмотра папок, поэтому нет необходимости в службе просмотра. Спасибо за подсказку, хотя :) – sansSpoon