寻找文件夹中文件的后缀名,及对应的文件数量
package com;
import java.io.File;
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
static Set<String> filename = new HashSet<>();
static String[] a;
static int[] num;
static Pattern p;
static Matcher m;
static int nullsuf = 0;
public static void main(String[] args) {
File file = new File("d:/mysql");
getfiles(file);
a = filename.stream().toArray(String[]::new);
num = new int[a.length];
getNumbers(file);
System.out.println(a[0] + 1);
System.out.println(a[0] + 1);
for (int i = 0; i < a.length; i++) {
System.out.println(a[i] + ":" + num[i]);
}
int account = 0;
for (Integer i : num) {
account = account + i;
}
System.out.println(account );
getnullnumbers(file);
System.out.println(nullsuf);
System.out.println(account+nullsuf);
}
/**
*
* @param file
* 将文件名的后缀加入到集合filename中
*/
public static void getfiles(File file) {
if (file.isFile()) {
/**
* 将文件后缀名加入到集合filename中
*/
filename.add(getsuf(file));
} else {
for (File f : file.listFiles()) {
getfiles(f);
}
}
}
/**
*
* @param file
* @return 得到并返回文件的后缀名
*/
public static String getsuf(File file) {
p = Pattern.compile(".*(\\.\\S*)");
m = p.matcher(file.getName());
String s = "";
if (m.find()) {
s = m.group(1);
}
return s;
}
/**
*
* @param file
* 得到同一种文件的数量
*/
public static void getNumbers(File file) {
if (file.isFile()) {
for (int i = 0; i < a.length; i++) {
if (file.getName().endsWith(a[i]) && a[i] != "") {
num[i]++;
break;
}
// 得到空后缀名的文件的数量
}
} else {
for (File f : file.listFiles()) {
getNumbers(f);
}
}
}
public static void getnullnumbers(File file) {
if (file.isFile()) {
if (file.getName().endsWith("")&&!(file.getName().contains("."))) {
nullsuf++;
}
} else {
for (File f : file.listFiles()) {
getnullnumbers(f);
}
}
}
}
寻找文件夹中文件的后缀名,及对应的文件数量
猜你喜欢
转载自blog.csdn.net/weixin_42321963/article/details/81289380
今日推荐
周排行