用 Java 把一个文件夹下的文件随机分为 x 份 x = 总份数 / n

/

以下内容由 chatGPT,一次生成而来,强大且高效,直接跑过,记录下,下次直接用

用Java实现文件夹内文件的随机分组是一个很好的主意,因为Java提供了更强大的文件处理能力和错误处理机制。下面是一个Java程序示例,它实现了将指定文件夹内的文件随机分成若干组的功能:

  1. import java.io.File;
  2. import java.io.IOException;
  3. import java.nio.file.Files;
  4. import java.nio.file.Paths;
  5. import java.util.Collections;
  6. import java.util.List;
  7. import java.util.stream.Collectors;
  8. import java.util.stream.Stream;
  9. public class FileDistributor {
  10. public static void main(String[] args) {
  11. if (args.length != 2) {
  12. System.out.println("Usage: java FileDistributor <folder_path> <n>");
  13. System.exit(1);
  14. }
  15. String folderPath = args[0];
  16. int n = Integer.parseInt(args[1]);
  17. File folder = new File(folderPath);
  18. if (!folder.isDirectory()) {
  19. System.out.println("The specified path is not a directory.");
  20. System.exit(1);
  21. }
  22. File[] files = folder.listFiles();
  23. if (files == null || files.length == 0) {
  24. System.out.println("No files found in the directory.");
  25. System.exit(1);
  26. }
  27. List<File> fileList = Stream.of(files).collect(Collectors.toList());
  28. Collections.shuffle(fileList);
  29. for (int i = 0; i < fileList.size(); i += n) {
  30. File newFolder = new File(folderPath + "/group_" + (i / n + 1));
  31. if (!newFolder.exists()) {
  32. newFolder.mkdir();
  33. }
  34. for (int j = i; j < i + n && j < fileList.size(); j++) {
  35. File file = fileList.get(j);
  36. file.renameTo(new File(newFolder.getPath() + "/" + file.getName()));
  37. }
  38. }
  39. System.out.println("Files distributed into " + ((fileList.size() - 1) / n + 1) + " groups.");
  40. }
  41. }

这个Java程序首先检查输入参数的合法性,然后列出指定文件夹内的所有文件。它将这些文件随机排序,然后按照指定的每组数量n分组。对于每组文件,程序将创建一个新的子文件夹,并将文件移动到这些子文件夹中

要运行此程序,请将代码保存为FileDistributor.java,并使用Java编译器编译它

  1. javac FileDistributor.java

然后运行编译后的程序,如下所示:

  1. java FileDistributor /path/to/your/folder

这会将/path/to/your/folder中的文件随机分成每组5个文件的多个子文件夹。请确保你有权限访问和修改指定的文件夹

转载请注明作者和出处,并添加本页链接。
原文链接: //xiaochun.zrlog.com/split-folder.html