java 完成目录拷贝,包括子目录以及各个文件 代码
时间: 2024-09-28 07:09:29 浏览: 18
在Java中,你可以使用`java.nio.file`包下的API来完成目录及其内容的复制,包括子目录。以下是一个简单的示例,展示如何实现这个功能:
```java
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
public class DirectoryCopy {
public static void main(String[] args) {
try {
// 源路径
Path sourcePath = Paths.get("src/directory");
// 目标路径
Path targetPath = Paths.get("dest/directory");
// 创建目标路径,如果不存在则创建
Files.createDirectories(targetPath);
// 使用Files.walk()遍历源目录的所有内容
Files.walk(sourcePath)
.filter(Files::isRegularFile) // 只复制文件,忽略其他如目录
.forEach(src -> {
try {
// 从源复制到目标,并保留所有属性
Files.copy(src, targetPath.resolve(src.getFileName()), StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
System.err.println("Error copying file: " + src);
}
});
System.out.println("Directory copy completed successfully.");
} catch (IOException e) {
System.err.println("An error occurred while copying directory: " + e.getMessage());
}
}
}
```
在这个例子中,我们使用`Files.walk()`方法递归地遍历源目录,然后通过`Files.copy()`方法将每个文件复制到目标目录中。`StandardCopyOption.REPLACE_EXISTING`确保如果目标文件已存在,会被替换。
阅读全文