1. 实现逻辑与代码
- 传入存放文件的父目录名称 获取该目录下的所有文件夹
/**
* 查找实例ID文件夹下的所有文件
*
* @param folder
* @return 文件夹下所有文件夹
*/
public static List<File> SearchFiles(File folder) {
List<File> result = new ArrayList<>();
if (folder.isFile())
result.add(folder);
File[] subFolders = folder.listFiles(new FileFilter() {
@Override
public boolean accept(File file) {
if (file.isDirectory()) {
return true;
}
return false;
}
});
if (subFolders != null) {
for (File file : subFolders) {
if (!file.isFile()) {
// 如果是文件夹则将文件夹添加到结果列表中
result.add(file);
} else {
// 如果是文件,则递归调用本方法
result.addAll(SearchFiles(file));
}
}
}
return result;
}
- 获取文件夹创建时间
/**
* 获取文件夹创建时间,返回long类型时间戳
*
* @param path
* @return
* @throws IOException
*/
public static long GetCreationTime(String path) throws IOException {
BasicFileAttributes attributes = null;
attributes = Files.readAttributes(Paths.get(path), BasicFileAttributes.class);
return attributes.creationTime().toMillis();
}
- 调用以上两个方法,传入父目录绝对路径返回文件夹 Map 集合存放文件名和时间戳
/**
* 返回文件夹 Map 集合
*
* @return
* @throws IOException
*/
public static HashMap<String, Long> GetFolder(String path) throws IOException {
List<File> files = SearchFiles(new File(path));
// System.out.println("共找到:" + files.size() + "个文件夹");
HashMap<String, Long> fileMap = new HashMap();
for (File file : files) {
String url = file.getAbsolutePath();
String fileName = url.substring(url.lastIndexOf("\\") +