麻烦会的仔细看看,求解答

来源:2-2 遍历目录

慕先生9431606

2018-01-25 11:43

package com.fwh;

import java.io.File;

public class demo {
 public static void lis(File dr) {
  /*String[] a=dr.list();
  for (String string : a) {
   System.out.println(string);
  }*/
  File[] a=dr.listFiles();
  for (File A : a) {
   if(A.isDirectory()) {
    lis(A);//特别注释!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   }else {
    System.out.println(A);
   }
  }
 }
}

这是我照着视频写的,运行没有问题,但是结果不是所有的文件都出来,结果是这样的,哪个地方错了?

d:\我要好好学习\你不是.txt
d:\我要好好学习\啊大概个\不是的信件\啊会尽快.txt
d:\我要好好学习\啊大概个\按哈哈去.txt
d:\我要好好学习\我是.txt

写回答 关注

7回答

  • qq_prisoner_4
    2019-04-12 10:53:06

       System.out.println(A)你把这个加到if语句块里去。else语句是非空文件夹才会输出。仔细想想。

  • 抗震性能
    2019-04-01 22:03:11

    File[] a=dir.listFiles();

    if(a.length>0&&a!=null) {

    for (File file : a) {

    if(file.isDirectory()){

    lisDirectory(file);

    }

    //在此处添加判断  如果遍历到不包含文档的文件夹,

    //但包含有另一空文件夹时 打印输出文件夹的目录

    else if(file!=null) {

    for (File file2 : a) {

    System.out.println(file2);

    };

    }else{

    System.out.println(file);

    }

    }

    }

    //如果没添加判断 就只会输出含有文档名的路径    不会输出只含有空文件夹的路径


  • qq_逆翔_0
    2018-05-10 10:07:14

    listDirectory是方法名,java中并没有这个方法

  • 慕姐936777
    2018-04-14 23:11:30

    你的问题应该是空文件目录没有输出目录吧!

    需要增加一个files!=null,但是files.length==0的情况,表示当前目录里面没有文件存在了,就打印当前空文件夹的目录,也就是直接输出dir目录

    if(files!=null&&files.length>0)

    for (File file : files) {

    if(file.isDirectory())

    fileListDirectory(file);

    else

    System.out.println(file);

    }

    else

    System.out.println(dir);


  • 丑丶小亚
    2018-02-08 14:23:45

    这递归写的是正确的,没有全部输出,是因为你只判断了当前文件为File的情况下输出.

    只要在dir的判断中,添加输出语句System.out.println("dir_:"+A.getName());,就都有了。

    http://img2.mukewang.com/5a7bec810001345406310183.jpg

  • qq_幸福_30
    2018-01-25 16:29:11

    应该列举出的是所有目录的值


  • qq_不丶_0
    2018-01-25 15:37:14

     lis(A);//特别注释!!!!!!!!!!!!!!!!!!!!!!!!!!!!


    要用listDirectory(A);方法

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133754 学习 · 1030 问题

查看课程

相似问题