Для программы я пытаюсь создать дерево каталогов.Итак, первая часть моей программы использует Paths для обхода нужного мне каталога:
public static void main(String[] args) throws IOException {
Path startingDir = Paths.get("/home/somedirectory");
PrintFiles pf = new PrintFiles();
Files.walkFileTree(startingDir, pf);
}
и программы PrintFiles (я непосредственно скопировал это из руководства по использованию путей для обхода дерева) http://download.oracle.com/javase/tutorial/essential/io/walk.html:
public static class PrintFiles extends SimpleFileVisitor<Path> {
//Print information about each type of file.
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attr) {
if (attr.isSymbolicLink()) {
System.out.format("Symbolic link: %s ", file);
} else if (attr.isRegularFile()) {
System.out.format("Regular file: %s ", file);
} else {
System.out.format("Other: %s ", file);
}
System.out.println("(" + attr.size() + "bytes)");
return CONTINUE;
}
//Print each directory visited.
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc) {
System.out.format("Directory: %s%n", dir);
return CONTINUE;
}
public FileVisitResult visitFileFailed(Path file, IOException exc) {
System.err.println(exc);
return CONTINUE;
}
}
У меня также есть универсальная древовидная программа, которая создает дерево с любым количеством узлов, с типичными функциями добавления узлов, удаления узлов и т. Д. (Я не собираюсь публиковатькод, потому что он длинный, и я не думаю, что это действительно необходимо, поскольку это довольно стандартная реализация)
Мой вопрос: как именно я могу сделать что-то, где я могу создать общее дерево, которое представляет дерево каталогов для моего конкретного каталога?Я не совсем знаком с тем, как работают библиотеки Path и File.
Спасибо, Кевин