为了账号安全,请及时绑定邮箱和手机立即绑定

如果子目录下没有文件,为什么连这个子目录都不会输出呢?

如果子目录下没有文件,为什么连这个子目录都不会输出呢?

正在回答

3 回答

因为老师没有对空目录做出来,加一段判断的就好。

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);
				}
			}
		}
	}
}


3 回复 有任何疑惑可以回复我~
#1

就要学IT 提问者

非常感谢!
2015-12-03 回复 有任何疑惑可以回复我~

可能是因为你的else语句没有写在for-each循环里面

0 回复 有任何疑惑可以回复我~

可能是因为你的else语句没有写在for-each循环里面


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

如果子目录下没有文件,为什么连这个子目录都不会输出呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信