FileUtil.java 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package com.caesolver.sftp;
  2. import java.io.File;
  3. import java.io.IOException;
  4. import java.nio.file.Path;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. public class FileUtil {
  8. /**
  9. 递归删除目录下的所有文件及子目录下所有文件
  10. * @param filepath 将要删除的文件目录
  11. */
  12. public static void deleteDir(String filepath) {
  13. File f = new File(filepath);//定义文件路径
  14. if(f.exists() && f.isDirectory()){//目录
  15. if(f.listFiles().length==0){//若目录下没有文件则直接删除
  16. f.delete();
  17. }else{//若有则把文件放进数组,并判断是否有下级目录
  18. File delFile[]=f.listFiles();
  19. int i =f.listFiles().length;
  20. for(int j=0;j<i;j++){
  21. if(delFile[j].isDirectory()){
  22. deleteDir(delFile[j].getAbsolutePath());//递归调用del方法并取得子目录路径
  23. }
  24. delFile[j].delete();//删除文件
  25. }
  26. }
  27. }else if(f.exists()){
  28. f.delete();
  29. }
  30. }
  31. /**
  32. * 获取文件夹下的所有文件列表
  33. * @param path
  34. * @throws IOException
  35. */
  36. public static List<File> ListDataOutFiles(String path,String projectType) {
  37. List<File> files =new ArrayList<File>();
  38. sonFiles(path, files,projectType);
  39. return files;
  40. }
  41. private static void sonFiles(String path, List<File> files,String projectType) {
  42. File rootFile = new File(path);
  43. File[] listFiles=rootFile.listFiles();
  44. if(listFiles!=null&&listFiles.length>0) {
  45. for (File file : listFiles) {
  46. if(file.isDirectory()) {
  47. sonFiles(file.getPath(),files,projectType);
  48. }else {
  49. switch (projectType) {
  50. case "hcfd":
  51. if(file.getParent().indexOf("data_out")>0) {
  52. files.add(file);
  53. };
  54. break;
  55. case "fem":
  56. if(file.getParent().indexOf("data_out")>0) {
  57. files.add(file);
  58. }
  59. break;
  60. case "cfd":
  61. if(file.getName().endsWith(".out")) {
  62. files.add(file);
  63. }
  64. break;
  65. case "mpm":
  66. if(file.getParent().indexOf("dataout")>0) {
  67. files.add(file);
  68. }
  69. break;
  70. case "bladesign":
  71. if(
  72. file.getName().endsWith(".K")||
  73. file.getName().endsWith(".v0")||
  74. file.getName().endsWith(".opt")||
  75. file.getName().endsWith(".ech")||
  76. file.getName().endsWith(".v1S")||
  77. file.getName().endsWith(".out")||
  78. file.getParent().indexOf("OPT")>0
  79. ) {
  80. files.add(file);
  81. }
  82. break;
  83. default:
  84. break;
  85. }
  86. }
  87. }
  88. }
  89. }
  90. }