Java基础知识—File文件操作练习作业—03
3、键盘录入一个文件夹路径,统计该文件夹下的各种后缀名的文件的个数
例如:.txt有10个,.java有30个…
import java.io.File;
import java.util.HashSet;
import java.util.Scanner;
/**
*
* @author Fight_steven
*/
public class CountSorts {
static int sum;
static HashSet<String> set1 = new HashSet<>();
static HashSet<String> set2 = new HashSet<>();
public static void main(String[] args) throws Exception {
Scanner in = new Scanner(System.in);
while (true) {
System.out.println("please input file path:");
String path = in.nextLine();
File filepath = new File(path);
if (!filepath.exists()) {
System.out.println("Error! input file path try once again:");
continue;
}
count(path);
for (String s1 : set1) {
String str = s1.substring(s1.length() - 3, s1.length());
set2.add(str);
}
System.out.println(set2);
for (String s2 : set2) {
System.out.println(s2);
int cut = 0;
for (String s1 : set1) {
if (s1.endsWith(s2)) {
cut++;
}
}
System.out.println("以" + s2 + "结尾的文件有:" + cut + "个!");
}
break;
}
}
public static void count(String path) {
String tp = path;
File filepath = new File(path);
String[] paths = filepath.list();
for (int x = 0; x < paths.length; x++) {
path = tp + "\\" + paths[x];
File tmp = new File(path);
if (tmp.isFile()) {
set1.add(path);
path = "";
} else if (tmp.isDirectory()) {
count(path);
}
}
}
}