【上传云】第一步:本地读取文件夹下的文件内容到数据库中
背景:本地有一些文件,需要上传到云端
这里先介绍第一步:将本地文件夹下的所有文件路径跟文件名都读取到数据库中,为下一步的上传做铺垫
所需:并不需要上传所有格式的文件,故在此步骤里做过滤操作
FileFilter zipFilter = pathname -> !pathname.getName().endsWith(“zxx”);
传文件的路径: String directory = requestJson.getString(“directory”);
public void downLocalResource(@RequestBody JSONObject requestJson) {
String directory = requestJson.getString("directory");
File rootFile = new File(directory);
FileFilter zipFilter = pathname -> !pathname.getName().endsWith("不要想的格式文件");
List filePathList = new ArrayList();
getFile(rootFile, zipFilter, filePathList);
ArrayList resourceList = new ArrayList();
for (int i = 0; i < filePathList.size(); i++) {
String filePath = filePathList.get(i);
ResourceBo resourceBo = new ResourceBo();
String[] split = filePath.split("\.");
String[] file = split[0].split("\\");
resourceBo.setId(XXX+ i);
resourceBo.setResourceName(file[file.length - 1]);
resourceBo.setResourceURL(filePath);
resourceBo.setStatus("N");
resourceBo.setResourceNumber(file[file.length - 2]);
resourceList.add(resourceBo);
}
数据库.saveBatch(resourceList);
}
private void getFile(File file, FileFilter filter, List filePathList) {
if (file.isDirectory()) {
File[] files = file.listFiles(filter);
if (ArrayUtils.isNotEmpty(files)) {
for (File subFile : files) {
getFile(subFile, filter, filePathList);
}
}
} else {
filePathList.add(file.getAbsolutePath());
}
}