就要学IT
2015-08-26 16:52
如果子目录下没有文件,为什么连这个子目录都不会输出呢?
因为老师没有对空目录做出来,加一段判断的就好。
package imooc.io;
import java.io.File;
import java.io.IOException;
//列出File的一些常用操作 比如:过滤、遍历等操作
public class FileUtils {
/**
* 列出指定目录下(包括其子目录)的所有文件
* @param file
* @throws IOException
*/
public static void listDirectoryFile(File dir) throws IOException{
if(!dir.exists()){
throw new IllegalArgumentException("目录" + dir +"不存在");
}
if(!dir.isDirectory()){
throw new IllegalArgumentException(dir + "不是目录");
}
//返回的是字符串数组 不包括子目录下的文件
/* String[] filenames = dir.list();
for(String filename : filenames){
System.out.println(dir + "\\" + filename);
}*/
//如果要遍历子目录下的内容 就需要构造成File对象做递归操作
File[] files = dir.listFiles();
if(files != null && files.length >0){
for(File file : files){
if(file.isDirectory()){
//判断是否为空目录,是则打印空目录的名字,否则则继续递归
String[] childFiles = file.list();
if(childFiles.length > 0){
//用递归 去列出子目录的所有内容
listDirectoryFile(file);
}else{
System.out.println(file);
}
}
else{
System.out.println(file);
}
}
}
}
}
可能是因为你的else语句没有写在for-each循环里面
可能是因为你的else语句没有写在for-each循环里面
文件传输基础——Java IO流
133848 学习 · 1060 问题
相似问题