利用递归的思想解决文件夹大小的计算、删除及查找

1、删除文件夹

代码实现:

public static void main(String[] args) {
String str = File.separator;
File file = new File(“C:” + str + “ab”);

}

public static void deleteFile(File file) {
	if (file != null) {
		if (file.isFile()) {
			file.delete();
		} else {
			File[] listFiles = file.listFiles();
			for (File f : listFiles) {
				deleteFile(f);
			}
		}
	}
	file.delete();
}

2、计算文件夹大小

代码实现:

public static void main(String[] args) {
String str = File.separator;
File file = new File(“C:” + str + “ab”);
long fileLength = getFileLength(file);
System.out.println(fileLength);

}

public static long getFileLength(File file) {
	long length = 0;
	if (file != null) {
		if (file.isFile()) {
			length = file.length();
		} else {
			File[] listFiles = file.listFiles();
			for (File f : listFiles) {
				length = length + getFileLength(f);
			}
		}
	} else {
		length = 0;
	}
	return length;
}

3、文件夹的查询

例如:计算文件夹(ab)中文件名包含 (.txt)的文件个数,并将其文件名打印出来

代码实现:

public static void main(String[] args) {
File file = new File(“C:” + File.separator + “ab”);
int fileNumber = getFileNumber(file);
System.out.println(fileNumber);
}

public static int getFileNumber(File file) {
	int count = 0;
	if (file != null) {
		if (file.isFile()) {
			if (file.getName().endsWith(".txt")) {
				count++;
				System.out.println(file.getName());
			}
		} else {
			File[] listFiles = file.listFiles();
			for (File f : listFiles) {
				count = count + getFileNumber(f);
			}
		}
	} else {
		count = 0;

	}
	return count;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值