/** * Get filestatuses of all the children of a given directory. This just reads through index file * and reads line by line to get all statuses for children of a directory. Its a brute force way * of getting all such filestatuses * * @param parent the parent path directory * @param statuses the list to add the children filestatuses to */ private void fileStatusesInIndex(HarStatus parent, List<FileStatus> statuses) throws IOException { String parentString = parent.getName(); if (!parentString.endsWith(Path.SEPARATOR)) { parentString += Path.SEPARATOR; } Path harPath = new Path(parentString); int harlen = harPath.depth(); final Map<String, FileStatus> cache = new TreeMap<String, FileStatus>(); for (HarStatus hstatus : metadata.archive.values()) { String child = hstatus.getName(); if ((child.startsWith(parentString))) { Path thisPath = new Path(child); if (thisPath.depth() == harlen + 1) { statuses.add(toFileStatus(hstatus, cache)); } } } }