我大约有150个文件夹,并且每个文件夹中都有图像,我正在尝试将整个目录复制到另一个目录中。对于少数目录,它可以正常工作,然后自动停止,而不会引发任何错误或异常。我正在使用FileUtils
方法来实现这一目标。
org.apache.commons.io.FileUtils.copyDirectoryToDirectory(originalImageFolder, new File(this.ctx.getRealPath(newFilePath)));
如以上我的评论中所述,如果FileUtils.copyDirectory(File srcDir, File destDir)
对您不起作用。我提供了一种替代解决方案,而无需使用FileUtils。
我在Windows上进行了测试,对我有用。我尚未在Linux上进行过测试,但是希望您提供的示例在Linux上也可以使用。
这里我正在使用Windows xcopy命令复制所有文件,包括子目录。我通过的参数定义如下。
Windows:
String src = "C:\\srcDir";
String dest = "C:\\destDir";
List<String> cmd = Arrays.asList("xcopy", src, dest, "/e", "/i", "/h");
try {
Process proc = new ProcessBuilder(cmd).directory(new File("c:\\")).start();
BufferedReader inp = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line = null;
while ((line = inp.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
Linux:
String src = "srcDir/";
String dest = "~/destDir/";
List<String> cmd = Arrays.asList("cp", "r", src, dest);
try {
Process proc = new ProcessBuilder(cmd).directory(new File("c:\\")).start();
BufferedReader inp = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line = null;
while ((line = inp.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}