迭代地删除文件夹及其下的所有文件

public static void main(String[] args) {
		String filePath = "c:" + File.separator +"b";
		File file = new File(filePath);
		if (file.exists()) {
			if (file.isFile()) {
				deleteFile(filePath);
			} else {
				deleteDirectory(filePath);
			}
		} else {
			System.err.println("指定的目录或者文件不存在!");
		}
	}
	//删除单个文件或空的文件夹
	public static boolean deleteFile(String filePath) {
		File file = new File(filePath);
		//如果文件路径对应的文件存在,并且是一个文件,则直接删除
		if (file.exists() && file.isFile()) {
			if (file.delete()) {
				System.err.println("文件" + filePath + "删除成功!");
				return true;
			} else {
				System.err.println("文件" + filePath + "删除失败!");
				return false;
			}
		} else {
			System.err.println("文件" + filePath + "不存在!");
			return false;
		}
	}
	//删除文件夹及里面的文件
	public static boolean deleteDirectory (String dir) {
		if (!dir.endsWith(File.separator)) {
			dir = dir + File.separator;
		}
		File dirFile = new File(dir);
		//如果dir对应的问件不存在,或者不是一个目录,则退出
		if (!dirFile.exists() || !dirFile.isDirectory()) {
			System.err.println("文件夹" + dir + "不存在!");
			return false;
		}
		boolean flag = true;
		//删除问价夹中的所有文件包括子目录
		File[] files = dirFile.listFiles();
		for (int i = 0; i < files.length; i++) {
			//删除子文件
			if (files[i].isFile()) {
				flag = deleteFile(files[i].getAbsolutePath());
				if (!flag) {
					break;
				}
			} else {
				deleteDirectory(files[i].getAbsolutePath());
			}
		}
		//删除当前目录
		if (dirFile.delete()) {
			System.err.println("目录" + dir + "删除成功!");
			return true;
		} else {
			return false;
		}
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值