public List<String> getLogFilenames() { File logDir = getLogsDir(); List<File> logDirnames = Arrays.asList(logDir.listFiles()); List<String> logFilenames = new ArrayList<String>(); for (File logMonthDir : logDirnames) { if (logMonthDir.isDirectory() && logMonthDir.listFiles().length > 0) { for (File logFile : logMonthDir.listFiles()) { if (logFile.getName().endsWith(".log")) { logFilenames.add(logMonthDir.getName() + File.separator + logFile.getName()); } } } } Collections.sort(logFilenames, new LogFilenameComparator()); Collections.reverse(logFilenames); return logFilenames; }