文章目录

测试效果

代码

package cn.edut.tarena.demo1;

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

import org.junit.Test;

public class Demo_file {
	/** * 从创建文件到跑路(删除文件) */
	@Test
	public void test001() {
		String rootDir = "D:\\testDir";
		String dirName = rootDir+"\\test01";
		String fileName = "test1.java";
		/* * 创建File类, */
		System.out.println("+ 创建File目录"+"、文件");
		File dir = new File(dirName);
		File fil = new File(dir.getAbsolutePath()+"\\"+fileName);
		System.out.println("--- 成功 new File:"+dir.getAbsolutePath());
		System.out.println("--- 成功 new File:"+fil.getAbsolutePath());
		/* * 测试 * 1.文件创建 * 2.目录创建 */
		System.out.println("+ "+"创建文件夹"+dir.getAbsolutePath());
		dir.mkdir();
		System.out.println("--- 用mkdir()方法创建:"+dir.isDirectory());//false:如果有父目录,mkdir无法创建
		dir.mkdirs();
		System.out.println("--- 用mkdirs()方法创建:"+dir.isDirectory());//true:目录创建成功,判断是目录
		System.out.println("+ "+dirName+"是文件夹?");//要有文件夹,才能判断。
		//Note:如果没有真正创建文件夹,只会返回false
		System.out.println("--- 创建文件夹前:"+dir.isDirectory());//true:目录创建了,判断类型为文件夹
		System.out.println("+ 创建文件:"+fil.getAbsolutePath());
		try {
			System.out.println("--- 开始创建...");
			//要先创建目录后,才可以创建文件!
			if(fil.createNewFile()) 
				System.out.println("--- 创建成功!");
			//Note:如果目录不在磁盘里,报错!
		} catch (IOException e) {
			System.out.println("--- 创建失败,因为目录文件夹不存在。");
		}
		/* * 测试 * 1.列出文件的目录 * 2.删除文件和目录 */
		String[] ss = dir.list();//获取目录下的文件/目录名
		System.out.println("+ 列出"+dir.getAbsolutePath()+"下所有目录/文件");
		System.out.println("--- 所有文件/文件夹如下:");
		for(String s :ss) {
			System.out.println("--- "+s);
		}
		System.out.println("+ 删除"+rootDir+"下所有目录/文件");
		deleteAll(new File(rootDir));
		System.out.println("--- "+rootDir+"删除成功!");
	}
	
	/** * 递归删除文件 * Note: * 要先删除文件,才能删除文件夹。 * @param dir */
	public static void deleteAll(File dir) {
		if(dir.isDirectory()) {
			for(File f : dir.listFiles()) {
				if(f.isFile()) {
					f.delete();
				}else if(f.isDirectory()) {
					deleteAll(f);
				}else {
					throw new RuntimeException("你到底是什么。。");
				}
			}
			dir.delete();
		}else if(dir.isFile()) {
			dir.delete();
		}else {
			throw new RuntimeException("你到底是什么。。");
		}
	}
	
}