模仿DOS下dir命令,列出某个目录下的内容

解决方案 »

  1.   

    public class TestDemo5 {
    public static void main(String[] args) {
    new Thread(()->{
    File file = new File("D:"+File.separator);
    /*try {
    Thread.sleep(5000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }*/
    //放在主线程   导致线程阻塞
    listDir(file);
    }).start();
    System.out.println("开始进行文件扫描。");
    }

    public static void listDir(File file) {
    //如果是目录   则继续迭代
    if(file.isDirectory()) {//如果列出的文件夹中的某个信息还是文件夹   这里代表的是路径  不是具体的某个文件
    File[] files = file.listFiles();
    //为了防止  某些系统文件打不开   空指针的问题
    if(files != null) {
    for (int i = 0; i < files.length; i++) {
    listDir(files[i]);
    }
    }
    }else {
    //所有的打印信息   全部是文件  不存在文件夹了
    System.out.println(file);
    }
    }
    }
      

  2.   

    也可以使用Runtime类,即用java来运行各种dos命令
      

  3.   

    1.如果仅在windows下运行  使用RunTime类调用DOS命令。
    2.考虑跨平台,就用File类,遍历。