本帖最后由 2233 于 2021-4-21 15:12 编辑
[Java] 纯文本查看 复制代码 package homework.test;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
public class Test1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入文件夹路径");
//String path = sc.next();
System.out.println("请输入文件夹名称");
String fileName = "杂乱";
File file = new File("C:\\Users\\康亚男\\Desktop\\录屏");
TreeMap<Long, File> tm = new TreeMap<>(new Comparator<Long>() {
//对文件进行排序
@Override
public int compare(Long o1, Long o2) {
int result = (int) (o1 - o2);
result = (result == 0) ? result = 1 : result;
return result;
}
});
soutTime(fileName, file, tm);
if (tm.size() < 1) {
System.out.println("你输入的文件夹名称不存在");
System.exit(0);
}
Map<Long, File> map = tm.entrySet().stream().collect(Collectors.toMap(en->en.getKey(),en->en.getValue(),(key,value)->key));
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd HH:mm:ss");
Date date = new Date();
Set<Long> longs = map.keySet();
for (Long aLong : longs) {
File file1 = map.get(aLong);
date.setTime(aLong);
String format = simpleDateFormat.format(date);
System.out.println("修改时间:"+format+"-------文件路径"+file1.getPath());
}
}
public static void soutTime(String fileName, File file, TreeMap<Long, File> tm) {
//获取这个文件夹的所有成员
File[] fileArr = file.listFiles();
//遍历所有成员
for (File file1 : fileArr) {
String file1Name = file1.getName();
//获取文件夹名称过后判断是否存在
if (fileName.equals(file1Name)) {
//判断这个名称是文件夹还是文件
if (file1.isDirectory()) {
//获取文件夹里面的所有文件
File[] fileArrChild = file1.listFiles();
for (File file2 : fileArrChild) {
//获取文件时间,把文件和文件时间的毫秒值存入集合
long fileTime = file2.lastModified();
tm.put(fileTime, file2);
}
//已经找到文件夹,不需要继续循环,直接跳出
break;
} else {
System.out.println("您输入的是一个文件");
}
//如果文件夹名称不匹配,判断是否是个文件夹,如果是就进入文件夹里面寻找
} else if (file1.isDirectory()) {
soutTime(fileName, file1, tm);
}
}
}
}
Map<Long, File> map = tm.entrySet().stream().collect(Collectors.toMap(en->en.getKey(),en->en.getValue(),(key,value)->key));这一句如果不加上最后一个(key,value)->key参数就会报错,说key的值重复,没看懂重复再哪儿,求解,我单独弄了一个TreeMap集合试了一下都行,就是再这里说重复了
|