树形文件类
import java.util.List;
import java.util.Map;
public class TreeVo {
private List<TreeVo> children;
private String filename;
public TreeVo(String filename){
this.filename=filename;
}
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public List<TreeVo> getChildren() {
return children;
}
public void setChildren(List<TreeVo> children) {
this.children = children;
}
public void addchild(TreeVo vo){
children.add(vo);
}
public boolean islast(){
return children==null;
}
}
实现思路:通过递归,遍历每个文件夹下的路径,存入vo中的list里。
package com.tomcat.one;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import com.tomcat.one.vo.TreeVo;
public class FileToTree {
public static void fileToTree(TreeVo root){
File rootfile=new File(root.getFilename());
if(!rootfile.isDirectory()){
return;
}else{
File[] children=rootfile.listFiles();
for(File child:children){
TreeVo childtree=new TreeVo(root.getFilename()+"\\"+child.getName());
if(root.getChildren()==null){
root.setChildren(new ArrayList<TreeVo>());
}
root.addchild(childtree);
fileToTree(childtree);
}
}
}
public static void printfFile(TreeVo vo){
List<TreeVo> list = vo.getChildren();
if (vo.islast()) {
}else {
System.out.println(vo.getFilename());
for (TreeVo treeVo : list) {
System.out.println(treeVo.getFilename());
}
System.out.println("======================================");
for (TreeVo treeVo : list) {
printfFile(treeVo);
}
}
}
public static void main(String[] args) {
TreeVo root=new TreeVo("E:\\java");
fileToTree(root);
printfFile(root);
}
}