用递归遍历目录中的所有文件
代码如下。但是如果给出路径的目录下没有文件,结果不能返回该目录的路径,例如,给出的路径"d:"+File.separator+"text";text是一个空文件夹,运行之后,什么都不显示,而我想要的结果是控制台显示text的路径:d:\text这样子的。
Java code
public static void main(String[] args) {
File f=new File("d:"+File.separator);
fun(f);
}
public static void fun(File f){
if(f!=null){
if(f.isDirectory()){
File[] files=f.listFiles();
if(files!=null){
for(int i=0;i<files.length;i++){
fun(files[i]);
}
}
}else{
System.out.println(f);
}
}
}
------解决方案--------------------public static void main(String[] args) {
File f=new File("d:"+File.separator);
fun(f);
}
public static void fun(File f){
if(f!=null){
if(f.isDirectory()){
File[] files=f.listFiles();
if(files!=null){
if(files.length==0) System.out.println(f.getAbsolutePath());
for(int i=0;i<files.length;i++){
fun(files[i]);
}
}
}else{
System.out.println(f);
}
}
}
------解决方案--------------------f.isDirectory()判断了,只有文件才打印,所以文件夹都不会打印的