62,614
社区成员
发帖
与我相关
我的任务
分享
private void addNode(DefaultMutableTreeNode root, File list[]) {
if (list == null || list.length <= 0) {
return;
}
for (File file : list) {
if (file.isDirectory()) {
DefaultMutableTreeNode node = new DefaultMutableTreeNode(file.getName());
root.add(node);
String path = file.getAbsolutePath().replace(dir, "");
if (path.indexOf("\\") != -1) {
String tmp[] = path.split("\\\\");
if (tmp.length < 2) {
addNode(node, c.files(file.getAbsolutePath()));
}
}else{
addNode(node, c.files(file.getAbsolutePath()));
}
}
}
}
解决了,我用路径来判读深度
package tm.cao.first;
import java.io.File;
public class VisitFile {
public static void main(String[] args) {
File f=new File("D:\\Program Files\\Genuitec\\Workspaces\\MyEclipse 10\\FirstServletProject");
preOrder(f, 1);
}
/**先序遍历
*如果是文件,遍历自身
*如果是文件夹:遍历自身
* 遍历它的子文件夹 level+1
*/
public static void preOrder(File file,int level){
if(file!=null){
String str=generateStr(level);
if(!file.isDirectory()){
visit(str, file);
}else{
visit(str, file);
File[] childs=file.listFiles();
for(File child:childs){
preOrder(child, level+1);
}
}
}
}
/**
* 输出一个文件
*/
public static void visit(String str,File file){
System.out.println(str+file.getName());
}
/**
根据层数拼串
*/
public static String generateStr(int level){
StringBuffer sb=new StringBuffer();
for(int i=1;i<=level;i++){
sb.append("----");
}
return sb.toString();
}
}
File list[] = c.files("P:\\zip\\");
if (list == null || list.length <= 0) {
return;
}
DefaultMutableTreeNode root = new DefaultMutableTreeNode("目录列表");
addNode(root, list, 0);
private void addNode(DefaultMutableTreeNode root, File list[], int depth) {
if (list == null || list.length <= 0) {
return;
}
for (File file : list) {
if (file.isDirectory()) {
DefaultMutableTreeNode node = new DefaultMutableTreeNode(file.getName());
root.add(node);
if (depth < 2) {
addNode(node, c.files(file.getAbsolutePath()), ++depth);
}
}
}
}