解题思路:
- 先创建一个File实例来获得指定路径下的所有文件信息
- 遍历所有的文件信息,如果有文件目录文件,那么使用listFiles()方法获得目录下面的所有文件,如果为空则打印输出文件名
- 使用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