src/main/java/com/whyc/controller/FgcdFiledownloadController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/FgcdFiledownloadService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/util/FileUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/controller/FgcdFiledownloadController.java
@@ -40,4 +40,16 @@ public Response cancleFileList(@RequestParam int devId){ return service.cancleFileList(devId); } @ApiOperation(value = "读取指定设备服务器文件列表") @GetMapping("getDevFileName") public Response getDevFileName(@RequestParam int devId,@RequestParam String battName){ return service.getDevFileName(devId,battName); } @ApiOperation(value = "判断文件是否在服务器上") @GetMapping("JudgeDevFileName") public Response JudgeDevFileName(@RequestParam int devId,@RequestParam String battName,@RequestParam String fileName){ return service.JudgeDevFileName(devId,battName,fileName); } } src/main/java/com/whyc/service/FgcdFiledownloadService.java
@@ -7,8 +7,14 @@ import com.whyc.pojo.FgcdFiledownload; import com.whyc.pojo.Response; import com.whyc.util.CmdUtil; import com.whyc.util.FileDirPath; import com.whyc.util.FileUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.File; import java.util.ArrayList; import java.util.List; @Service public class FgcdFiledownloadService { @@ -126,4 +132,23 @@ boolean bl=sendCmd(CmdUtil.CMD_DOLADCANCLE,0,0,null,devId); return new Response().set(1,bl); } //读取指定设备服务器文件列表 public Response getDevFileName(int devId,String battName) { String fileDirName = FileDirPath.getFileDirName(); String root=fileDirName+ File.separator+"FDFiles"+File.separator+devId+File.separator+battName; List list = new ArrayList<>(); list= FileUtil.getStaticFilePath(new File(root),list); return new Response().setII(1,list!=null,list,"读取指定设备服务器文件列表"); } //判断文件是否在服务器上 public Response JudgeDevFileName(int devId, String battName, String fileName) { boolean bl=true; String fileDirName = FileDirPath.getFileDirName(); String root=fileDirName+ File.separator+"FDFiles"+File.separator+devId+File.separator+battName+File.separator+fileName; File file=new File(root); if (file == null || !file.exists()) { bl=false; } return new Response().set(1,bl); } } src/main/java/com/whyc/util/FileUtil.java
New file @@ -0,0 +1,96 @@ package com.whyc.util; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; public class FileUtil { public static List<String> getStaticFilePath(File file, List<String> list){ //如果是文件的情况 if (file.isFile()){ list.add(file.getAbsolutePath()); }else{ //如果是目录的情况 //创建一个File数组来存储当前目录下所有文件和目录的绝对路径 File[] files = file.listFiles(); //循环遍历files for (File fileTemp : files){ if(fileTemp.getName().contains(".zip")){ continue; } //子级是目录 if (fileTemp.isDirectory()){ //递归再次进行判断 getStaticFilePath(fileTemp, list); }else{ //子级是文件 String absolutePath = fileTemp.getAbsolutePath(); list.add(absolutePath); //System.out.println(temp + "文件 :" + fileTemp.getName() + "\t"); } } } return list; } public static Boolean deleteFile(File file) { //判断文件不为null或文件目录存在 if (file == null || !file.exists()) { System.out.println("文件删除失败,请检查文件是否存在以及文件路径是否正确"); return false; } //获取目录下子文件 File[] files = file.listFiles(); //遍历该目录下的文件对象 for (File f : files) { //判断子目录是否存在子目录,如果是文件则删除 if (f.isDirectory()) { //递归删除目录下的文件 deleteFile(f); } else { //文件删除 f.delete(); //打印文件名 } } //文件夹删除 file.delete(); return true; } public static void download(HttpServletResponse resp,String inFilePath,String outFileFullName){ try { // 转码防止乱码 //resp.addHeader("Content-Disposition", "attachment;filename=" + new String(softwareName.getBytes("UTF-8"), "ISO8859-1")); resp.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode ( outFileFullName, "utf-8")); OutputStream out = resp.getOutputStream(); FileInputStream in = new FileInputStream(inFilePath); int len=0; byte[] buffer =new byte[1024]; //7. 将缓冲区中的数据输出 while ((len=in.read(buffer))>0){ out.write(buffer,0,len); } in.close(); out.close(); } catch (FileNotFoundException | UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { File file = new File("C:\\Users\\29550\\Desktop\\当前项目\\202207泰州平台"); List list = new ArrayList<>(); list = getStaticFilePath( file,list); System.out.println(list); } }