Java中统计一个文件夹中每种文件的个数并打印
时间: 2024-10-09 10:13:57 浏览: 36
键盘录入一个文件夹路径,统计该文件夹下的各种后缀名的文件的个数。
在Java中,你可以使用`java.io.File`类和一些流处理技巧来统计给定目录下每个类型的文件数量。这里是一个简单的示例,假设你想统计文本文件(.txt)、图片文件(.jpg/.png)和PDF文件(.pdf)的数量:
```java
import java.io.File;
import java.util.HashMap;
import java.util.Map;
public class FileCounter {
public static void main(String[] args) {
String directoryPath = "/path/to/your/directory"; // 替换为实际目录路径
Map<String, Integer> fileCountMap = new HashMap<>();
File folder = new File(directoryPath);
if (folder.exists() && folder.isDirectory()) {
File[] files = folder.listFiles((dir, name) -> {
String extension = getExtension(name);
return !name.equals(".") && !name.equals("..") && extension != null; // 避免遍历"."和".."目录
});
if (files != null) {
for (File file : files) {
String ext = getExtension(file.getName());
if (ext != null) {
fileCountMap.put(ext, fileCountMap.getOrDefault(ext, 0) + 1);
}
}
for (Map.Entry<String, Integer> entry : fileCountMap.entrySet()) {
System.out.println("文件类型 " + entry.getKey() + ": " + "数量 " + entry.getValue());
}
} else {
System.out.println("指定的目录不存在或不是一个目录");
}
} else {
System.out.println("路径无效或不是有效目录");
}
}
private static String getExtension(String fileName) {
int dotIndex = fileName.lastIndexOf('.');
if (dotIndex > 0) {
return fileName.substring(dotIndex + 1).toLowerCase();
}
return null;
}
}
```
这个程序首先检查指定的目录是否存在并且是一个目录,然后遍历目录下的文件。对于每一个文件,获取其扩展名,如果存在就增加对应类型计数器。最后打印出每个类型的文件数量。
阅读全文