在 Java 中将文件从一个目录复制到另一个目录

2022-08-31 06:46:13

我想使用Java将文件从一个目录复制到另一个目录(子目录)。我有一个目录,dir,带有文本文件。我循环访问dir中的前20个文件,并希望将它们复制到dir目录中的另一个目录,这是我在迭代之前创建的。在代码中,我想将 (表示第 i 个文本文件或审阅) 复制到 。我该怎么做?似乎没有这样的功能(或者我找不到)。谢谢。reviewtrainingDir

boolean success = false;
File[] reviews = dir.listFiles();
String trainingDir = dir.getAbsolutePath() + "/trainingData";
File trDir = new File(trainingDir);
success = trDir.mkdir();
for(int i = 1; i <= 20; i++) {
    File review = reviews[i];

}

答案 1

现在,这应该可以解决您的问题

File source = new File("H:\\work-temp\\file");
File dest = new File("H:\\work-temp\\file2");
try {
    FileUtils.copyDirectory(source, dest);
} catch (IOException e) {
    e.printStackTrace();
}

FileUtils来自 apache commons-io 库的类,从版本 1.2 开始可用。

使用第三方工具而不是自己编写所有实用程序似乎是一个更好的主意。它可以节省时间和其他宝贵资源。


答案 2

标准 API 中没有文件复制方法(尚未)。您的选项包括:

  • 自己编写它,使用FileInputStream,FileOutputStream和缓冲区将字节从一个复制到另一个 - 或者更好的是,使用FileChannel.transferTo()
  • 用户 Apache Commons' FileUtils
  • 等待 Java 7 中的 NIO2