删除文件夹

本文探讨了在Java中删除文件夹的多种方法,包括使用File对象的delete方法及其局限性,对比了File与java.nio.file.Files中delete方法的优劣,详细介绍了递归删除目录的实现方式。

Java实现删除文件夹,会想到使用File对象的delete方法,里面也会涉及到递归,毕竟文件夹中包含的可能是文件或者是文件夹。File的delete方法的缺点我觉得是删除异常时不会有异常抛出,这就不太利于问题的发现,而java.nio.file.Files中的delete方法就能够更好的解决这个问题。

File#delete

也可以使用File#deleteOnExit()方法

public static void deleteDir(String dirPath) {
		File file = new File(dirPath);
		file.setWritable(true); //避免有删除权限问题
		if (file.isDirectory()) {
			File[] files = file.listFiles();
			for (File f : files) {
				deleteDir(f.getPath());
			}
		}
		file.delete();
	}

Files#delete

也可以使用Files#deleteIfExists()方法

private static void deleteDirectory(String dir) throws IOException {
		File tempDir = new File(dir);
		tempDir.setWritable(true);
		if (tempDir.isDirectory()) {
			File[] files = tempDir.listFiles();
			for (File f : files) {
				deleteDirectory(f.getPath());
			}
		}
		Files.delete(tempDir.toPath());
	}

参考

  1. https://blog.youkuaiyun.com/df0128/article/details/84782944
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值