import java.io.File;
/**
* 输出子孙级目录|文件的名称(绝对路径)
* 1.listFiles();
* 2.递归;
* @author Administrator
*
*/
public class Demoo {
public static void main(String[] args) {
String path="E:/Demo1";
File parent=new File(path);
printName(parent);
}
public static void printName(File src){
if(src==null||!src.exists()){
return ;
}
//递归体
System.out.println(src.getAbsolutePath());
//判断是否仍为目录,接着往下
if(src.isDirectory()){
for(File file:src.listFiles()){
printName(file);
}
}
}
}
输出:
E:\Demo1
E:\Demo1\.classpath
E:\Demo1\.project
E:\Demo1\.settings
E:\Demo1\.settings\org.eclipse.jdt.core.prefs
E:\Demo1\bin
E:\Demo1\bin\A.class
E:\Demo1\bin\B.class
E:\Demo1\bin\C.class
E:\Demo1\bin\Calendar1.class
E:\Demo1\bin\CompositePatternDemo.class
E:\Demo1\bin\D.class
E:\Demo1\bin\Date1.class
E:\Demo1\bin\Demo1.class
E:\Demo1\bin\Demo2.class
E:\Demo1\bin\E.class
E:\Demo1\bin\Employee.class
E:\Demo1\bin\F.class
E:\Demo1\bin\G.class
E:\Demo1\bin\Test02.class
E:\Demo1\bin\Testexception.class
E:\Demo1\bin\TestFile.class
E:\Demo1\bin\TestFile01.class
E:\Demo1\bin\VisualCalendar.class
E:\Demo1\src
E:\Demo1\src\Calendar1.java
E:\Demo1\src\CompositePatternDemo.java
E:\Demo1\src\Date1.java
E:\Demo1\src\Demo1.java
E:\Demo1\src\Test02.java
E:\Demo1\src\Testexception.java
E:\Demo1\src\TestFile.java
E:\Demo1\src\TestFile01.java
E:\Demo1\src\VisualCalendar.java
指定文件和后缀是.java,是&&关系
import java.io.File;
import java.io.FilenameFilter;
/**
* 输出子孙级目录|文件的名称(后缀为.java文件)
* 1.listFiles();
* 2.递归;
* @author Administrator
*
*/
public class Demoo {
public static void main(String[] args) {
String path="E:/Demo1";
File parent=new File(path);
printName(parent);
}
public static void printName(File src){
if(src==null||!src.exists()){
return ;
}
if(src.isFile()&&src.getName().endsWith(".java")){
System.out.println(src.getAbsolutePath());
}
File[] subFile=src.listFiles();
if(src.isDirectory()){
for(File file:subFile){
printName(file);
}
}
}
}
输出:
E:\Demo1\src\Calendar1.java
E:\Demo1\src\CompositePatternDemo.java
E:\Demo1\src\Date1.java
E:\Demo1\src\Demo1.java
E:\Demo1\src\Test02.java
E:\Demo1\src\Testexception.java
E:\Demo1\src\TestFile.java
E:\Demo1\src\TestFile01.java
E:\Demo1\src\VisualCalendar.java
总结:递归要灵活应用,递归头和递归体