java实现一个目录下全部文件复制到另一目录
时间: 2024-01-20 11:03:33 浏览: 73
将目录下的所有文件移动到另一个目录
3星 · 编辑精心推荐
可以使用Java的File类和IO流来实现目录下所有文件的复制。以下是一个基本的实现方法:
```java
import java.io.*;
public class FileCopy {
public static void main(String[] args) throws IOException {
// 源文件夹和目标文件夹路径
String sourcePath = "C:\\source_folder";
String targetPath = "C:\\target_folder";
// 创建源文件夹和目标文件夹对象
File sourceFolder = new File(sourcePath);
File targetFolder = new File(targetPath);
// 判断源文件夹是否存在,目标文件夹不存在则创建
if (!sourceFolder.exists()) {
System.out.println("源文件夹不存在!");
return;
}
if (!targetFolder.exists()) {
targetFolder.mkdirs();
}
// 获取源文件夹下的所有文件和子目录
File[] files = sourceFolder.listFiles();
// 遍历所有文件和子目录
for (File file : files) {
if (file.isFile()) { // 如果是文件,则复制文件
FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(new File(targetFolder, file.getName()));
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
fis.close();
fos.close();
} else if (file.isDirectory()) { // 如果是子目录,则递归调用复制方法
File newSourceFolder = new File(sourceFolder, file.getName());
File newTargetFolder = new File(targetFolder, file.getName());
main(new String[]{newSourceFolder.getAbsolutePath(), newTargetFolder.getAbsolutePath()});
}
}
System.out.println("文件复制完成!");
}
}
```
注意:在复制文件时,需要使用字节流,而不是字符流。另外,由于可能存在子目录,因此需要递归调用复制方法。
阅读全文