Java复制目录慢

Java copy directory slow

我在 C 盘上有几个大小 >2.5GB 的文件夹,它是 SSD。通过 Java,我将这些文件夹移动到另一个共享驱动器,这也发生在使用 FileUtils.copyDirectoryToDirectory(sourceDir, destiDir);

的 SSD 上

与 windows 默认移动选项(需要 5 分钟)相比,它工作正常但速度较慢(需要约 30 分钟)。我四处搜索,看看是否有更好的方法来提高通过我的 java 程序移动目录的性能,但没有成功。有人可以建议我移动这些目录的最佳方法吗?

好的,这就是我所做的

在 java 中使用了 robocopy 命令在两个位置之间复制目录。使用约 9GB 的文件进行测试,并能够在约 9 分钟内复制。下面是代码片段

 String sourceFolder = new File("C:\test\robocopytest\source\20170925T213857460").toString();
        String destFolder = new File("C:\test\robocopytest\destination\20170925T213857460").toString();
        StringBuffer rbCmd = new StringBuffer();
        if ((sourceFolder != null) && (destFolder != null))
        {
          if (sourceFolder.contains(" ")) {
            if (sourceFolder.startsWith("\")) {
              sourceFolder = "/\"" + sourceFolder.substring(1) + "/\"";
            } else {
              sourceFolder = "\"" + sourceFolder + "\"";
            }
          }
          if (destFolder.contains(" ")) {
            if (destFolder.startsWith("\")) {
              destFolder = "/\"" + destFolder.substring(1) + "/\"";
            } else {
              destFolder = "\"" + destFolder + "\"";
            }
          }
          rbCmd.append("robocopy " + sourceFolder + " " + destFolder);
          Process p = Runtime.getRuntime().exec(rbCmd.toString());
        }