现在在D盘中放有一个名为MultiFile的文件夹,请编写程序将此文件夹下的所有文件夹和文件复制到E盘的MultiFileCopy文件夹下。 用java的IO操作具体代码实现
时间: 2023-07-30 19:09:01 浏览: 181
以下是用Java的IO操作实现将D盘中的MultiFile文件夹下的所有文件夹和文件复制到E盘的MultiFileCopy文件夹下的代码:
```java
import java.io.*;
public class FileCopy {
public static void main(String[] args) throws IOException {
File sourceDir = new File("D:\\MultiFile");
File targetDir = new File("E:\\MultiFileCopy");
// 检查目标文件夹是否存在,不存在则创建
if (!targetDir.exists()) {
targetDir.mkdir();
}
// 复制源文件夹下的所有文件和文件夹到目标文件夹下
copyDir(sourceDir, targetDir);
}
/**
* 复制文件夹及其子文件夹和文件到目标文件夹下
*
* @param source 源文件夹
* @param target 目标文件夹
*/
public static void copyDir(File source, File target) throws IOException {
if (source.isDirectory()) {
// 如果是文件夹,则创建对应的目标文件夹
File targetDir = new File(target, source.getName());
if (!targetDir.exists()) {
targetDir.mkdir();
}
// 复制文件夹下的所有文件和文件夹
String[] subFiles = source.list();
for (String subFile : subFiles) {
copyDir(new File(source, subFile), targetDir);
}
} else {
// 如果是文件,则复制到目标文件夹下
File targetFile = new File(target, source.getName());
FileInputStream in = new FileInputStream(source);
FileOutputStream out = new FileOutputStream(targetFile);
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = in.read(buffer)) > 0) {
out.write(buffer, 0, bytesRead);
}
in.close();
out.close();
}
}
}
```
注意事项:
- 如果目标文件夹不存在,则需要先创建目标文件夹。
- 使用递归实现复制文件夹及其子文件夹和文件的操作。
阅读全文