對於我正在嘗試創建目錄樹的程序。因此,我的計劃的第一部分使用路徑遍歷我需要的目錄:創建目錄樹
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