1.java实现复制一个文件夹下的所有文件到另一个文件夹并重命名文件

  1. package com.bings.utils;
  2. import java.io.File;
  3. import java.nio.file.Files;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. public class ReFileName {
  7. public static void main(String[] args) {
  8. String basePath = "D:\\upload\\book_img\\old";
  9. File dir = new File(basePath);
  10. List<File> allFileList = new ArrayList<>();
  11. // 判断文件夹是否存在
  12. if (!dir.exists()) {
  13. System.out.println("目录不存在");
  14. return;
  15. }
  16. getAllFile(dir, allFileList);
  17. for(int i = 0;i<allFileList.size();i++){
  18. //把这些文件重命名
  19. String path = "D:\\upload\\book_img";
  20. File pf=new File(path);
  21. if(!pf.exists()){
  22. pf.mkdirs();
  23. }
  24. String fileName = i+1+".png";
  25. File targetFile = new File(path+"/"+fileName);
  26. try {
  27. Files.copy(allFileList.get(i).toPath(), targetFile.toPath());
  28. // targetFile.createNewFile();
  29. } catch (Exception e) {
  30. e.printStackTrace();
  31. }
  32. }
  33. }
  34. public static void getAllFile(File fileInput, List<File> allFileList) {
  35. // 获取文件列表
  36. File[] fileList = fileInput.listFiles();
  37. assert fileList != null;
  38. for (File file : fileList) {
  39. if (file.isDirectory()) {
  40. // 递归处理文件夹
  41. // 如果不想统计子文件夹则可以将下一行注释掉
  42. getAllFile(file, allFileList);
  43. } else {
  44. // 如果是文件则将其加入到文件数组中
  45. allFileList.add(file);
  46. }
  47. }
  48. }
  49. }