java文件操作File之递归打印指定路径下的所有文件

版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/f2764052703/article/details/89283854

解题思路:

  1. 先创建一个File实例来获得指定路径下的所有文件信息
  2. 遍历所有的文件信息,如果有文件目录文件,那么使用listFiles()方法获得目录下面的所有文件,如果为空则打印输出文件名
  3. 使用listFiles()方法获得二级目录以后再次递归调用本方法。

代码示例如下:

package bianli;

import java.io.File;

public class bianli {
    public static void main(String[] args) {
        allFile("D:\\demo\\javaBase");
    }

    // 递归输出文件夹下面的所有文件
    public static void allFile(String path){
        File f = new File(path);

        // 如果文件f为一个目录文件
        if (f.isDirectory()){
            // 得到目录中的所有文件索引
            File[] fs = f.listFiles();
            // 如果目录中不为空
            if(fs != null && fs.length > 0){
                // 递归打印其中的所有文件路径
                for (File a: fs ) {
                    if(a.isDirectory()){
                        allFile(a.getPath());
                    }else{
                        System.out.println(a);
                    }
                }
            }
        }
    }
}

运行结果如下:

D:\install\java\bin\java.exe "-javaagent:D:\install\idea\IntelliJ IDEA 2018.3.5\lib\idea_rt.jar=61828:D:\install\idea\IntelliJ IDEA 2018.3.5\bin" -Dfile.encoding=GBK -classpath D:\install\java\jre\lib\charsets.jar;D:\install\java\jre\lib\deploy.jar;D:\install\java\jre\lib\ext\access-bridge-64.jar;D:\install\java\jre\lib\ext\cldrdata.jar;D:\install\java\jre\lib\ext\dnsns.jar;D:\install\java\jre\lib\ext\jaccess.jar;D:\install\java\jre\lib\ext\jfxrt.jar;D:\install\java\jre\lib\ext\localedata.jar;D:\install\java\jre\lib\ext\nashorn.jar;D:\install\java\jre\lib\ext\sunec.jar;D:\install\java\jre\lib\ext\sunjce_provider.jar;D:\install\java\jre\lib\ext\sunmscapi.jar;D:\install\java\jre\lib\ext\sunpkcs11.jar;D:\install\java\jre\lib\ext\zipfs.jar;D:\install\java\jre\lib\javaws.jar;D:\install\java\jre\lib\jce.jar;D:\install\java\jre\lib\jfr.jar;D:\install\java\jre\lib\jfxswt.jar;D:\install\java\jre\lib\jsse.jar;D:\install\java\jre\lib\management-agent.jar;D:\install\java\jre\lib\plugin.jar;D:\install\java\jre\lib\resources.jar;D:\install\java\jre\lib\rt.jar;D:\demo\javaBase\out\production\javaBase bianli.bianli
D:\demo\javaBase\.idea\encodings.xml
D:\demo\javaBase\.idea\misc.xml
D:\demo\javaBase\.idea\modules.xml
D:\demo\javaBase\.idea\uiDesigner.xml
D:\demo\javaBase\.idea\workspace.xml
D:\demo\javaBase\javaBase.iml
D:\demo\javaBase\out\production\javaBase\bianli\bianli.class
D:\demo\javaBase\out\production\javaBase\bianli\FileTools.class
D:\demo\javaBase\out\production\javaBase\config
D:\demo\javaBase\out\production\javaBase\fanShe\excel.class
D:\demo\javaBase\out\production\javaBase\fanShe\excel.java
D:\demo\javaBase\out\production\javaBase\fanShe\main.class
D:\demo\javaBase\out\production\javaBase\fanShe\office.class
D:\demo\javaBase\out\production\javaBase\fanShe\ppt.class
D:\demo\javaBase\out\production\javaBase\fanShe\test
D:\demo\javaBase\out\production\javaBase\fanShe\word.class
D:\demo\javaBase\out\production\javaBase\FileTest\FileTest.class
D:\demo\javaBase\out\production\javaBase\FileTest\test.txt
D:\demo\javaBase\out\production\javaBase\META-INF\javaBase.kotlin_module
D:\demo\javaBase\out\production\javaBase\objectStudy\A.class
D:\demo\javaBase\out\production\javaBase\objectStudy\B.class
D:\demo\javaBase\out\production\javaBase\objectStudy\father.class
D:\demo\javaBase\out\production\javaBase\objectStudy\interfaceTest.class
D:\demo\javaBase\out\production\javaBase\objectStudy\main.class
D:\demo\javaBase\out\production\javaBase\objectStudy\son.class
D:\demo\javaBase\out\production\javaBase\test\test.class
D:\demo\javaBase\out\production\javaBase\test\test2.class
D:\demo\javaBase\out\production\javaBase\test\test3.class
D:\demo\javaBase\out\production\javaBase\test\test4.class
D:\demo\javaBase\out\production\javaBase\test\test5.class
D:\demo\javaBase\out\production\javaBase\test\test6.class
D:\demo\javaBase\out\production\javaBase\test\test7.class
D:\demo\javaBase\out\production\javaBase\test\test8.class
D:\demo\javaBase\out\production\javaBase\test\test9.class
D:\demo\javaBase\out\production\javaBase\test\testCalendar.class
D:\demo\javaBase\out\production\javaBase\test\testTest.class
D:\demo\javaBase\out\production\javaBase\test\testTest2.class
D:\demo\javaBase\out\production\javaBase\test\testTest3.class
D:\demo\javaBase\src\bianli\bianli.java
D:\demo\javaBase\src\bianli\FileTools.java
D:\demo\javaBase\src\config
D:\demo\javaBase\src\fanShe\excel.java
D:\demo\javaBase\src\fanShe\main.java
D:\demo\javaBase\src\fanShe\office.java
D:\demo\javaBase\src\fanShe\ppt.java
D:\demo\javaBase\src\fanShe\test
D:\demo\javaBase\src\fanShe\word.java
D:\demo\javaBase\src\FileTest\FileTest.java
D:\demo\javaBase\src\FileTest\test.txt
D:\demo\javaBase\src\objectStudy\father.java
D:\demo\javaBase\src\objectStudy\interfaceTest.java
D:\demo\javaBase\src\objectStudy\main.java
D:\demo\javaBase\src\objectStudy\son.java
D:\demo\javaBase\src\test\test.java
D:\demo\javaBase\src\test\test2.java
D:\demo\javaBase\src\test\test3.java
D:\demo\javaBase\src\test\test4.java
D:\demo\javaBase\src\test\test5.java
D:\demo\javaBase\src\test\test6.java
D:\demo\javaBase\src\test\test7.java
D:\demo\javaBase\src\test\test8.java
D:\demo\javaBase\src\test\test9.java
D:\demo\javaBase\src\test\testCalendar.java
D:\demo\javaBase\src\test\testTest.java
D:\demo\javaBase\src\test\testTest2.java
D:\demo\javaBase\src\test\testTest3.java

Process finished with exit code 0

猜你喜欢

转载自blog.csdn.net/f2764052703/article/details/89283854