参考 https://blog.csdn.net/lingbo229/article/details/81297072
public static void getFiles(File dir,List<Map<String, String>> list) {
//如果当前文件或目录存在
if(dir.exists()){
//如果是目录,则:
if(dir.isDirectory()){
//打印当前目录的路径
//System.out.println(dir);
//获取该目录下的所有文件和目录组成的File数组
File[] files = dir.listFiles();
//递归遍历每一个子文件
for(File file : files){
getFiles(file);
}
}
//如果是文件,则打印该文件路径及名称
else{
//System.out.println(dir);
list.add("fileName",dir);
}
}
}
测试预览
File file = new File("D:\\document\\");
List<Map<String, String>> list = Lists.newArrayList();
getFiles(file,list);
遍历输出list
@RequestMapping(value = "listFiles", method = RequestMethod.GET)
public String getFiles() throws JsonProcessingException {
List<Map<String, String>> list = Lists.newArrayList();
File file = new File(fileDir + demoPath);
// list.add(ImmutableMap.of("fileName", demoDir + "/" + "gcFile/bb.docx"));
// if (file.exists()) {
// Arrays.stream(Objects.requireNonNull(file.listFiles())).forEach(file1 -> list.add(ImmutableMap.of("fileName", demoDir + "/" + file1.getName())));
// }
getFiles(file,list);
return new ObjectMapper().writeValueAsString(list);
}
private static void getFiles(File file,List<Map<String, String>> list){
if(file.exists()){
Arrays.stream(Objects.requireNonNull(file.listFiles())).forEach(file1 -> {
if(file1.isDirectory()&& file1.listFiles().length>0){
getFiles(file1,list);
}else {
// System.out.println(file1.toString());
list.add(ImmutableMap.of("fileName", file1.toString().substring(8).replace("\\","/")));
}
});
}
}