当前位置 : 主页 > 编程语言 > java >

Java IO 遍历目录

来源:互联网 收集:自由互联 发布时间:2021-06-28
FileUtils.java package traversalDir;import java.io.File;import java.io.IOException;public class FileUtils {/** * 列出指定目录下(包括其子目录)的所有文件 */public static void listDirectory(File dir) throws IOException{if(!di
FileUtils.java
package traversalDir;

import java.io.File;
import java.io.IOException;

public class FileUtils {
	/**
	 * 列出指定目录下(包括其子目录)的所有文件
	 */
	public static void listDirectory(File dir) throws IOException{
		if(!dir.exists()) {
			throw new IllegalArgumentException("目录:"+dir+"不存在!");
		}
		if(!dir.isDirectory()) {
			throw new IllegalArgumentException(dir+"不是目录!");
		}
		/*
		String[] filenames = dir.list(); 
		//返回的是字符串数组,仅返回的是要查询目录下文件和子目录的名字
		//而不会返回子目录里面的文件和目录 
		for (String string : filenames) {
			System.out.println(dir+"\\"+string);
		}
		*/
		
		//遍历子目录下的内容需要构造成File对象做递归操作,File提供了直接返回File对象的方法
		File[] files = dir.listFiles(); //返回的是直接子目录(文件)的抽象
		if(files != null && files.length > 0) {
			for (File file : files) {
				if(file.isDirectory()) {
					//递归
					listDirectory(file);
				} else {
					System.out.println(file);
				}
			}
		}	
	}
}
FileUtilsTest.java
package traversalDir;

import java.io.File;
import java.io.IOException;

public class traversalDirTest {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		FileUtils.listDirectory(new File("D:\\eclipse-workspace\\traversalDir"));
	}
}
运行结果
网友评论