protected List<DirEntry> getDirEntries(RouteContext routeContext, File dir, String absoluteDirUri) { List<DirEntry> list = new ArrayList<>(); for (File file : getFiles(dir)) { String fileUrl = routeContext.getRequest().getApplicationPath() + StringUtils.removeEnd(StringUtils.addStart(absoluteDirUri, "/"), "/") + StringUtils.addStart(file.getName(), "/"); list.add(new DirEntry(fileUrl, file)); } if (comparator != null) { list.sort(comparator); } if (!directory.equals(dir)) { File upDir = new File(dir, "../"); list.add(0, new DirEntry(routeContext.getRequest().getApplicationPath() + StringUtils.removeEnd(StringUtils.addStart(absoluteDirUri, "/"), "/") + StringUtils.addStart(upDir.getName(), "/"), upDir)); } return list; }