对于我正在尝试创建目录树的程序。因此,我的计划的第一部分使用路径遍历我需要的目录:创建目录树
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;
}
}
我也有一个通用的树程序与任意数量的节点创建一个树,具有典型的节点添加删除节点等功能(我没有要发布的代码,因为它的长,我因为它不认为它真的有必要这是一个非常标准的实现)。
我的问题是,我该如何做一些事情,我可以创建一个通用树来表示我的特定目录的目录树?我不完全熟悉路径和文件库的工作方式。
感谢, 凯文
我会考虑使用Apache公用程序io fileutils来运行目录 – jayunit100