6 键盘录入一个文件夹路径,统计该文件夹的大小。要求:文件夹中包含有子文件夹中的文件也要统计。 思路分析: 1.定义成员变量totalSize保存文件夹的总大小 2.在main方法中通过键盘录入一个文件夹路径 3.通过输入的文件夹路径创建File对象 4.判断file是否存在,如果不存在就return结束方法 5.判断file是否是文件,如果是文件打印文件的大小并return结束方法 6.定义calcSize方法获取文件夹的大小,方法的参数为(File dir) 6.1.在calcSize方法中使用listFiles方法列出参数dir文件夹的所有内容 6.2.遍历获取文件夹的中的每个File对象 6.3.如果是文件,把文件的大小加起来 6.4.如果是文件夹,递归调用calcSize,传入遍历的File对象 7.在main方法中调用calcSize方法传入file对象 8.打印文件夹总大小
时间: 2023-06-20 09:10:35 浏览: 103
代码实现:
```java
import java.io.File;
import java.util.Scanner;
public class FolderSize {
private static long totalSize = 0; // 定义成员变量保存文件夹的总大小
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入文件夹路径:");
String path = scanner.nextLine(); // 通过键盘录入一个文件夹路径
File file = new File(path);
if (!file.exists()) { // 判断file是否存在
System.out.println("文件夹不存在!");
return;
}
if (file.isFile()) { // 判断file是否是文件
System.out.println(file.getName() + "的大小为:" + file.length() + "字节");
return;
}
calcSize(file); // 调用calcSize方法获取文件夹大小
System.out.println("文件夹总大小为:" + totalSize + "字节");
}
private static void calcSize(File dir) {
File[] files = dir.listFiles(); // 获取文件夹的所有内容
for (File file : files) {
if (file.isFile()) { // 如果是文件,累加文件大小
totalSize += file.length();
} else if (file.isDirectory()) { // 如果是文件夹,递归调用calcSize方法
calcSize(file);
}
}
}
}
```
注意事项:
- 文件夹的大小以字节为单位;
- 如果文件夹不存在或者路径不正确,则需给出提示并结束程序;
- 如果输入的路径指向的是一个文件,则需打印该文件的大小并结束程序;
- 如果输入的路径指向的是一个文件夹,则需统计该文件夹的大小,包括其中的子文件夹中的文件的大小。
阅读全文