java如何复制整个目录呢?
下文笔者讲述java代码复制整个目录的方法及示例分享,如下所示
复制整个目录的实现思路
采用递归遍历整个目录
当遇到文件时,则采用流的方式复制文件
例:复制整个目录的示例
//整个目录复制的工具类
import java.io.*;
public class CopyDirectory {
public static void main(String[] args) {
// 源目录路径
File srcDir = new File("srcDir");
// 目标目录路径
File destDir = new File("destDir");
// 调用复制目录方法
copyDirectory(srcDir, destDir);
System.out.println("复制完成!");
}
/**
* 功能:复制目录
* @param srcDir 源目录
* @param destDir 目标目录
*/
public static void copyDirectory(File srcDir, File destDir) {
// 如果源目录不存在,直接返回
if (!srcDir.exists()) {
System.out.println("源目录不存在!");
return;
}
// 如果目标目录不存在,创建目标目录
if (!destDir.exists()) {
destDir.mkdirs();
}
// 获取源目录下所有文件和目录
File[] files = srcDir.listFiles();
// 遍历所有文件和目录
for (File file : files) {
if (file.isFile()) {
// 如果是文件,复制文件到目标目录
copyFile(file, new File(destDir, file.getName()));
} else if (file.isDirectory()) {
// 如果是目录,递归复制目录
copyDirectory(file, new File(destDir, file.getName()));
}
}
}
/**
* 功能:复制文件
* @param srcFile 源文件
* @param destFile 目标文件
*/
public static void copyFile(File srcFile, File destFile) {
try (InputStream in = new FileInputStream(srcFile);
OutputStream out = new FileOutputStream(destFile)) {
int len;
byte[] buffer = new byte[1024];
// 循环读取并复制文件内容
while ((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
} catch (IOException e) {
System.out.println("复制文件失败!");
e.printStackTrace();
}
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


