scoobym 2015-10-17 16:03 采纳率: 0%
浏览 1922

java实现类似linux的tree命令,求解答

package javaiotest;

import java.io.*;
import java.util.Scanner;

public class FileExplore {

private File file = null;
public int fileNum = 0;
public int dirNum = 0;
public FileExplore(){
    System.out.println("请输入要遍历的目录:");
    Scanner console = new Scanner(System.in);
    String filepath = console.next();
    file = new File(filepath);
    console.close();
}

public  String getDepth(File file){
    File temp = file;
    String depth = new String();
    while(temp!=this.file){
        depth+="   ";
        temp = temp.getParentFile();
    }
    return depth;
}


public void treeOfFile(File file){

    if(!file.exists())
        System.out.println("file is null!");
    if(file.isFile()){
        System.out.println(this.getDepth(file)+"|--"+file.getName());
        fileNum++;
        }
    if(file.isDirectory()&&file.list().length==0){
        System.out.println(this.getDepth(file)+"|--" +file.getName());
        dirNum++;
    }
    if(file.isDirectory()&&file.list().length>0)
    {
        dirNum++;
        System.out.println(this.getDepth(file)+"|--"+file.getName());
        File[] filelist = file.listFiles();
        for(int i=0;i<filelist.length;i++){
            treeOfFile(filelist[i]);
        }

    }
}

public static void main(String[] args) {

    FileExplore demo = new FileExplore();
    demo.treeOfFile(demo.file);
    System.out.println("文件夹数量:"+ demo.dirNum);
    System.out.println("文件数量:"+ demo.fileNum);
}

}
结果抛出空指针异常,是在那个getDepth出错的,可是看不出来哪里错了

  • 写回答

2条回答 默认 最新

  • threenewbee 2015-10-17 16:19
    关注

    while(temp!=this.file)
    不能这么写应该是
    while(temp.getFileName().equals(this.file.getFileName()))

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)