タイトルの説明:指定されたディレクトリとそのサブディレクトリを詳細にトラバースし、さまざまなファイル形式の数を数えます
- 例えば:
- {css = 192、xmind = 45、def = 5、py = 1、bak = 2、patch = 1、BSD = 5、exe = 17}
import java.io.File;
import java.util.HashMap;
import java.util.Map;
public class Program018 {
public static void main(String[] args) {
String root = "C:\\Users\\乐\\MicrosoftEdgeBackups\\backups";
deepStatisticsFileType(new File(root));
System.out.println("结果为:"+resultMap);
}
private static Map<String,Integer> resultMap = new HashMap<String,Integer>();
public static void deepStatisticsFileType(File currentFile) {
File[] files=currentFile.listFiles();
for(File f:files) {
if(f.isFile()) {
String fileName=f.getName();
int beginIndex=fileName.lastIndexOf(".");
String sufix=beginIndex<0?"无格式文件":fileName.substring(beginIndex+1);
if(resultMap.containsKey(sufix)) {
int value=resultMap.get(sufix)+1;
resultMap.put(sufix, value);
}else {
resultMap.put(sufix, 1);
}
}else {
deepStatisticsFileType(f);
}
}
}
}