List<File> getFiles(File file)获取指定目录下的所有文件
时间: 2023-05-24 08:05:10 浏览: 111
伪代码如下:
```
public List<File> getFiles(File file){
List<File> fileList = new ArrayList<>();
//判断文件是否存在
if(file.exists()){
//获取目录下的所有文件名
String[] files = file.list();
for(String fileName : files){
File tempFile = new File(file.getAbsolutePath() + File.separator + fileName);
//判断是否是目录,如果是则递归调用
if(tempFile.isDirectory()){
fileList.addAll(getFiles(tempFile));
}else{
fileList.add(tempFile);
}
}
}
return fileList;
}
```
注意事项:
1. 该方法返回的是一个List<File>类型的文件列表。
2. 在遍历子文件时,需要使用递归调用的方式。
3. 如果文件夹中没有任何文件,则该方法返回一个空的List<File>。
相关问题
public static List<File> getFiles(File file , Predicate<File> filter)获取指定目录下满足条件的文件
/**
* 获取指定目录下满足条件的文件
* @param file 目录
* @param filter 过滤条件
* @return 文件列表
*/
public static List<File> getFiles(File file, Predicate<File> filter) {
List<File> fileList = new ArrayList<>(); // 存储符合条件的文件
if (file.exists()) {
if (file.isDirectory()) {
// 如果是目录,遍历目录下所有文件,并判断是否符合过滤条件
File[] files = file.listFiles();
for (File f : files) {
if (f.isDirectory()) {
// 如果是目录,递归调用
fileList.addAll(getFiles(f, filter));
} else if (filter.test(f)) {
// 如果是文件且符合过滤条件,将该文件加入列表
fileList.add(f);
}
}
}
}
return fileList;
}
//保存 @ResponseBody @RequestMapping("/save") public Map<String,String>save(String name,HttpServletRequest request ) throws IOException { Map<String,String>map=new HashMap<>(); QueryWrapper<RenkouPerson>queryWrapper=new QueryWrapper<>();// RenkouPerson renkouPerson=new RenkouPerson();//人口信息 QueryWrapper<Renkouku>queryWrapper1=new QueryWrapper<>(); //从request获取文件 可能会有多个压缩包 所以是个file的list或数组 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; List<MultipartFile> files = multipartRequest.getFiles("files"); //获取库的id //Long renkoukuId=renkoukuService.getOne(queryWrapper1.eq("name",name)).getId(); //renkouPerson.setRenkoukuId(renkoukuId);如何获取renkouku的id
通过以下代码可以获取renkouku的id:
```
Long renkoukuId = renkoukuService.getOne(new QueryWrapper<Renkouku>().eq("name", name)).getId();
```
其中,QueryWrapper用来构建查询条件,eq("name", name)表示查询name字段等于传入参数name的记录。getOne方法用来获取符合条件的第一条记录,再通过getId()方法获取这条记录的id值。