java键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中文件个数和文件夹个数。
时间: 2023-08-01 09:12:50 浏览: 84
Excel-VBA宏编程实例源代码-删除相同路径下的文件夹(FileSystemObject).zip
可以使用递归来遍历文件夹中的所有文件和子文件夹,并统计它们的个数。以下是一个示例代码:
```java
import java.io.File;
public class FileCounter {
public static void main(String[] args) {
// 读取用户输入的文件夹路径
System.out.print("请输入文件夹路径:");
String path = System.console().readLine();
// 统计文件夹和文件的个数
int folderCount = 0;
int fileCount = 0;
File folder = new File(path);
countFiles(folder, folderCount, fileCount);
// 输出统计结果
System.out.println("文件夹个数:" + folderCount);
System.out.println("文件个数:" + fileCount);
}
public static void countFiles(File folder, int folderCount, int fileCount) {
if (folder.isDirectory()) {
folderCount++; // 统计文件夹个数
File[] files = folder.listFiles();
if (files != null) {
for (File file : files) {
countFiles(file, folderCount, fileCount);
}
}
} else {
fileCount++; // 统计文件个数
}
}
}
```
在上面的代码中,我们首先读取用户输入的文件夹路径,然后定义了两个变量 `folderCount` 和 `fileCount`,分别用于统计文件夹和文件的个数。接着,我们使用 `File` 类来创建一个文件夹实例,并调用 `countFiles()` 方法来统计文件夹中的文件和子文件夹个数。在 `countFiles()` 方法中,我们首先判断当前文件是否是一个文件夹,如果是,则增加文件夹个数,并递归调用 `countFiles()` 方法来遍历当前文件夹中的所有文件和子文件夹。如果当前文件不是一个文件夹,那么我们就增加文件个数。最后,在主方法中输出统计结果。
注意:上述代码并没有处理异常情况,如输入的路径不存在或者无法访问等情况。在实际开发中,还需要对这些异常情况进行适当的处理。
阅读全文