Java 实现文件或文件夹的复制到指定目录可以使用 NIO 的 Files
类,以下是实现一份文件的复制到目标文件夹的代码示例。
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class FileCopyDemo {
public static void main(String[] args) throws IOException {
String sourceFilePath = "source.txt"; // 源文件路径
String targetDirPath = "target"; // 目标目录路径
// 1. 检查目标目录是否存在,不存在则创建
if (!Files.exists(Paths.get(targetDirPath))) {
Files.createDirectories(Paths.get(targetDirPath));
}
// 2. 拼接目标文件路径
Path sourcePath = Paths.get(sourceFilePath);
String targetFilePath = targetDirPath + File.separator + sourcePath.getFileName();
// 3. 复制文件到目标文件夹
Files.copy(sourcePath, Paths.get(targetFilePath), StandardCopyOption.REPLACE_EXISTING);
}
}
具体过程如下:
- 创建源文件的路径与目标目录的路径;
- 判断目标目录是否存在,不存在则创建;
- 解析源文件路径,获取文件名,为目标文件拼接路径,使用
Files.copy
方法完成文件复制操作。
如果要实现文件夹的复制,则需要使用递归遍历实现;以下示例实现从源文件夹复制到目标文件夹的代码:
import java.io.File;
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 FolderCopyDemo {
public static void main(String[] args) throws IOException {
String sourceFolderPath = "source"; // 源文件夹路径
String targetFolderPath = "target"; // 目标文件夹路径
// 1. 检查目标目录是否存在,不存在则创建
if (!Files.exists(Paths.get(targetFolderPath))) {
Files.createDirectories(Paths.get(targetFolderPath));
}
// 2. 遍历源文件夹中的所有文件和子文件夹,并复制到目标文件夹
Files.walk(Paths.get(sourceFolderPath)).forEach(sourcePath -> {
String targetPath = sourcePath.toString().replace(sourceFolderPath, targetFolderPath);
try {
if (Files.isDirectory(sourcePath)) {
Files.createDirectories(Paths.get(targetPath));
} else {
Files.copy(sourcePath, Paths.get(targetPath), StandardCopyOption.REPLACE_EXISTING);
}
} catch (IOException e) {
e.printStackTrace();
}
});
}
}
代码实现过程如下:
- 创建源文件夹路径与目标文件夹路径;
- 如果目标文件夹不存在,则创建;
- 使用
Files.walk
遍历源文件夹中的所有文件及子文件夹,使用Files.copy
来复制文件或文件夹到目标文件夹,如果当前正在处理的是一个子文件夹,则需要在目标文件夹中创建对应文件夹。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现文件或文件夹的复制到指定目录实例 - Python技术站