File 文件:
Java.io.File用于标识文件(目录)
File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问。
File类常用的API: exists()判断是否存在 mkdir()创建目录 createNewFile()创建文件 getAbsolutePath() getParent()获取地址
File类用于判断文件或目录,以及创建他们
File.separator 设置分隔符
package com.zhao.file;
import java.io.File;
import java.io.IOException;
import java.nio.file.*;
public class FileDemo{
	
	public static void main(String[] args) {
		//了解构造函数的情况 查帮助
		java.io.File directory=new java.io.File("D:\\imooc");
//		System.out.println(file.exists());
		if (!directory.exists()) {
			//创建目录
			directory.mkdir();
		}
		else{
			directory.delete();
		}
		
		File file=new File("D:"+File.separator+"imooc"+File.separator+"日记.txt");
		if (!file.exists()) {
			try {
				file.createNewFile();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		else{
			file.delete();
		}
		 
		System.out.println(file);
		System.out.println(file.getAbsolutePath());
		System.out.println(file.getParentFile());
		System.out.println(file.getParent());
		System.out.println(file.getPath());
	}
}
创建FileUitl类,实现目录遍历的功能
/**
	 * 列出指定目录下(包括其子目录)的所有文件
	 * @param dir:指定目录
	 * @throws IOException
	 */
	public static void listDirectory(File dir) throws IOException{
		if (!dir.exists()) {
			System.out.println("指定目录不存在,查询失败");
		}
		else if (!dir.isDirectory()) {
			System.out.println("传递的参数有误,不是目录");
		}
		else{
			//返回的是直接子目录(文件)的抽象
			File[] files=dir.listFiles();
			for(File file:files){
				if (file.isDirectory()) {
					System.out.println("Directory :"+file.getName()+", "+file.getAbsolutePath()+"---> Parent :"+file.getParent());
					//递归
					listDirectory(file);
				}
				else if(file.isFile()){
					System.out.println("File :"+file.getName()+", "+file.getAbsolutePath());
				}
			}
		}
	}
在此方法中,先判断传入的文件dir是否存在,是否是目录。
在dir是目录的情况下,dir.listFiles()方法返回该目录下所有的子文件(目录)的抽象
此时仍需要判断File[] 中的每个File是文件还是目录,是文件还好,是目录的话进行递归操作。
listDirectory(File)循环调用,对所有目录都进行遍历
至此FiltUtil的listDirectory完成,并不复杂,重温了递归操作。
原文:http://www.cnblogs.com/zhao307/p/5344781.html