Java复制目录慢



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

发生在SSD上。

与Windows默认移动选项相比,它的工作正常,但缓慢(花费约30分钟),该选项需要5分钟。我四处搜索,看看是否有更好的方法可以通过我的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());
        }

相关内容

  • 没有找到相关文章

最新更新