diff --git a/ruoyi-admin/src/test/java/Tests.java b/ruoyi-admin/src/test/java/Tests.java index e1f7e36d..4d004035 100644 --- a/ruoyi-admin/src/test/java/Tests.java +++ b/ruoyi-admin/src/test/java/Tests.java @@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; +import java.io.File; import java.util.List; import java.util.Map; @@ -41,5 +42,9 @@ public class Tests { }); + } + @Test + public void test2(){ + } } diff --git a/ruoyi-admin/target/ruoyi-admin/WEB-INF/classes/application.yml b/ruoyi-admin/target/ruoyi-admin/WEB-INF/classes/application.yml index 8ee10e36..a7990955 100644 --- a/ruoyi-admin/target/ruoyi-admin/WEB-INF/classes/application.yml +++ b/ruoyi-admin/target/ruoyi-admin/WEB-INF/classes/application.yml @@ -12,7 +12,7 @@ ruoyi: #profile: /opt/ruoyi/uploadPath profile: C:/Users/ThinkPad/Desktop/sql # profile: /home/changhao/ruoyi/uploadPath - readPath: C:/Users/ThinkPad/Desktop/down + readPath: C:/Users/ThinkPad/Desktop/im1 # 获取ip地址开关 addressEnabled: false # 验证码类型 math 数组计算 char 字符验证 diff --git a/ruoyi-archives/src/main/java/com/ruoyi/archives/service/impl/ArchiveImportServiceImpl.java b/ruoyi-archives/src/main/java/com/ruoyi/archives/service/impl/ArchiveImportServiceImpl.java index 73db78a4..cfcb7a05 100644 --- a/ruoyi-archives/src/main/java/com/ruoyi/archives/service/impl/ArchiveImportServiceImpl.java +++ b/ruoyi-archives/src/main/java/com/ruoyi/archives/service/impl/ArchiveImportServiceImpl.java @@ -42,6 +42,7 @@ import java.lang.reflect.Field; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; +import java.util.concurrent.LinkedTransferQueue; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -1515,7 +1516,7 @@ public class ArchiveImportServiceImpl implements ArchiveImportService { File file=new File(path); log.info("读取文件开始==========================="); log.info("文件路径为{}",file.getAbsoluteFile()); - final Map> fils = getFils(file, msg); + final Map> fils = getFils(file, msg,0); log.info("读取文件结束==========================="); // fileMsg=new HashMap<>(); // fileMsg.putAll(fils); @@ -1524,26 +1525,33 @@ public class ArchiveImportServiceImpl implements ArchiveImportService { // return fileMsg; return fils; } - public Map> getFils(File file,Map> map){ - if (file.isDirectory()){ - log.info("当前文件路径为{}",file.getAbsolutePath()); + public Map> getFils(File file,Map> map,int index){ + if (!file.isFile()){ + index++; + log.info("当前读取文件的层级为第{}层",index); + log.info("当前读取的文件路径为{}",file.getAbsolutePath()); + File[] listFiles = file.listFiles(); if (listFiles!=null){ for (int i = 0; i < listFiles.length; i++) { - getFils(listFiles[i],map); + getFils(listFiles[i],map,index); } + }else { + log.error("当前路径不存在或者路径下没有文件夹和文件"); } }else { final String parent = file.getParent(); if (!parent.isEmpty()){ - final String[] split = parent.split("\\\\"); +// final String[] split = parent.split("\\\\"); + final String[] split = parent.split("/"); String name=split[split.length-1]; final List list = map.getOrDefault(name, new ArrayList()); if (file.isFile()){ list.add(file.getAbsolutePath()); map.put(name,list); + log.info("第{}层下{}里的{}读取成功",index,name,file.getAbsolutePath()); } } diff --git a/ruoyi-archives/src/test/java/test.java b/ruoyi-archives/src/test/java/test.java index 24d4fa59..6ac22d0a 100644 --- a/ruoyi-archives/src/test/java/test.java +++ b/ruoyi-archives/src/test/java/test.java @@ -1,5 +1,6 @@ import com.ruoyi.archives.domain.ArchiveRecordInfo; import com.ruoyi.archives.domain.export.RedaFile; +import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.utils.file.FileUploadUtils; import lombok.val; import org.apache.commons.fileupload.FileItem; @@ -27,22 +28,22 @@ import java.util.Map; **/ public class test { public static void main(String[] args) { - go(); - String path="C:\\Users\\ThinkPad\\Desktop\\down"; - String path2="C:\\Users\\ThinkPad\\Desktop\\站长素材\\moban5498\\images\\ad-banner.jpg"; - File file = new File(path2); - - FileInputStream fileInputStream = null; - try { -// fileInputStream = new FileInputStream(file); -// MockMultipartFile multipartFile = new MockMultipartFile(file.getName(), fileInputStream); - - final CommonsMultipartFile file1 = creat(file); - path = FileUploadUtils.uploadByArUtils("C:/Users/ThinkPad/Desktop/sql",file1); - System.err.println(path); - } catch (Exception e) { - e.printStackTrace(); - } +// go(); +// String path="C:\\Users\\ThinkPad\\Desktop\\down"; +// String path2="C:\\Users\\ThinkPad\\Desktop\\站长素材\\moban5498\\images\\ad-banner.jpg"; +// File file = new File(path2); +// +// FileInputStream fileInputStream = null; +// try { +//// fileInputStream = new FileInputStream(file); +//// MockMultipartFile multipartFile = new MockMultipartFile(file.getName(), fileInputStream); +// +// final CommonsMultipartFile file1 = creat(file); +// path = FileUploadUtils.uploadByArUtils("C:/Users/ThinkPad/Desktop/sql",file1); +// System.err.println(path); +// } catch (Exception e) { +// e.printStackTrace(); +// } // final File[] files = file.listFiles(); // for (File file1 : files) { @@ -63,6 +64,16 @@ public class test { // System.err.println("key:"+k+"========="+"{"+"value:"+f.getName()+"}"); // }); // }); + + Map> msg=new HashMap<>(); +// String path="C:\\Users\\ThinkPad\\Desktop\\down"; +// String path= RuoYiConfig.getReadPath(); + File file=new File("C:/Users/ThinkPad/Desktop/imhh5"); + final Map> fils = getFils(file, msg); + fils.forEach((s, files) -> { + System.err.println(s); + System.err.println(files); + }); } public static Map> getFils(File file, Map> map){ @@ -70,6 +81,7 @@ public class test { if (file.isDirectory()){ for (File listFile : file.listFiles()) { getFils(listFile,map); + } }else { @@ -78,7 +90,9 @@ public class test { String name=split[split.length-1]; final List list = map.getOrDefault(name, new ArrayList()); list.add(file); -// map.put(name,list); + System.err.println(file.isFile()); + System.err.println(file.isAbsolute()); + map.put(name,list); } return map; diff --git a/ruoyi-archives/src/test/java/test2.java b/ruoyi-archives/src/test/java/test2.java new file mode 100644 index 00000000..6270c9f5 --- /dev/null +++ b/ruoyi-archives/src/test/java/test2.java @@ -0,0 +1,80 @@ +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class test2 { + public static void main(String[] args) { + Map> map =new HashMap<>(); + File fu=new File("/opt/filepath"); + System.out.printf("isFile:"+fu.isFile()+"\n"); + System.out.printf("isDirectory:"+fu.isDirectory()+"\n"); + System.out.printf("isAbsolute:"+fu.isAbsolute()+"\n"); + System.out.printf("isHidden:"+fu.isHidden()+"\n"); + + System.out.printf("getAbsolutePath:"+fu.getAbsolutePath()+"\n"); + System.out.printf("getPath:"+fu.getPath()+"\n"); + System.err.println("fu:"+fu.toString()+"\n"); + String[] list = fu.list(); + System.err.println("list======" +list); +// for (String s : list) { +// System.err.println(s+"\n"); +// } + System.err.println("listFiles======" +fu.listFiles()); + + Map> fils = getFils(fu, map); + File[] files = fu.listFiles(); + + for (int i = 0; i < files.length; i++) { + System.err.println("exists:"+files[i].exists()+"\n"); + System.err.println("isAbsolute:"+files[i].isAbsolute()+"\n"); + System.out.printf("isFile:"+files[i].isFile()+"\n"); + System.out.printf("isDirectory:"+files[i].isDirectory()+"\n"); + System.out.printf("isAbsolute:"+files[i].isAbsolute()+"\n"); + System.out.printf("isHidden:"+files[i].isHidden()+"\n"); + System.out.printf("getPath:"+files[i].getPath()+"\n"); + } + + fils.forEach((k,v)->{ + System.out.printf("读取的文件========================"+"\n"); + System.err.println(k+"\n"); + v.forEach(System.out::println); + System.out.printf("\n"+"读取结束=============================="+"\n"); + }); + + } + + + public static Map> getFils(File file,Map> map){ + + if (!file.isFile()){ + System.out.printf("当前文件路径为{}"+file.getAbsolutePath()+"\n"); + System.out.printf("getPath{}"+file.getPath()+"\n"); + File[] listFiles = file.listFiles(); + System.out.printf(""); + if (listFiles!=null){ + for (int i = 0; i < listFiles.length; i++) { + getFils(listFiles[i],map); + } + } + }else { + final String parent = file.getParent(); + if (!parent.isEmpty()){ + System.out.println("parent:"+parent); + final String[] split = parent.split("\\\\"); +// final String[] split = parent.split("\\\\"); + String name=split[split.length-1]; + final List list = map.getOrDefault(name, new ArrayList()); + if (file.isFile()){ + list.add(file.getAbsolutePath()); + map.put(name,list); + } + + } + + + } + return map; + } +} diff --git a/ruoyi-archives/src/test/java/test3.java b/ruoyi-archives/src/test/java/test3.java new file mode 100644 index 00000000..21138f67 --- /dev/null +++ b/ruoyi-archives/src/test/java/test3.java @@ -0,0 +1,64 @@ +import java.io.File; +import java.util.*; + +public class test3 { + public static ArrayList dirAllStrArr= new ArrayList<>(); + public static void main(String[] args) { + String run ="run"; + while (!run.equals("ok")){ + Scanner sc = new Scanner(System.in); + System.out.println("输入数据:"); + String PATH=sc.next(); + Map> map =new HashMap<>(); + File fu=new File(PATH); + Map> fils = getFils(fu, map,0); + fils.forEach((k,v)->{ + System.out.printf("读取的文件========================"+"\n"); + System.out.printf("key:"); + System.out.println(k+"\n"); + System.out.printf("value:"); + v.forEach(System.out::println); + System.out.printf("\n"); + }); + run=PATH; + } + + + } + public static Map> getFils(File file, Map> map,int index){ + + if (!file.isFile()){ + index++; + System.out.printf("当前文件路径为{}"+file.getAbsolutePath()+"\n"); + System.out.printf("当先是第"+index+"层"+"\n"); + File[] listFiles = file.listFiles(); + if (listFiles!=null){ + for (int i = 0; i < listFiles.length; i++) { + getFils(listFiles[i],map,index); + } + }else { + System.out.printf("文件路径错误"); + return map; + } + }else { + final String parent = file.getParent(); + if (!parent.isEmpty()){ +// System.out.println("parent:"+parent); +// final String[] split = parent.split("/"); + final String[] split = parent.split("\\\\"); + String name=split[split.length-1]; +// System.out.println("name:"+name+"\n"); + final List list = map.getOrDefault(name, new ArrayList()); + if (file.isFile()){ + list.add(file.getAbsolutePath()); + map.put(name,list); + System.out.printf("第"+index+"层下"+name+"里的"+file.getName()+"读取成功"+"\n"); + } + + } + + + } + return map; + } +}