工具方法
/**
/**
* 复制文件或目录
*
* @author 静心事成
* @param source 源文件/目录路径
* @param target 目标文件/目录路径
* @param isOverwrite 是否覆盖目标文件
* @throws IOException
* */
public static void copy(File source, File target, boolean isOverride) throws IOException {
// 定义变量,保存是否需要覆盖目标文件的常量
final StandardCopyOption option = isOverride ? StandardCopyOption.REPLACE_EXISTING : StandardCopyOption.COPY_ATTRIBUTES;
// 判断source是否是文件,如果是文件,直接进行复制
if (source.isFile())
// 使用Java SE 7的Files.copy方法直接复制
Files.copy(source.toPath(), target.toPath(), option);
else {
// 如果source是目录
// 判断目标目录是否存在
if (!target.exists())
// 新建目标目录
target.mkdirs();
// 查找源目录下的所有文件和目录
File[] sourceFiles = source.listFiles();
// 遍历复制
for (File file : sourceFiles) {
// 判断是文件还是目录
if (file.isFile())
// 使用Java SE 7的Files.copy方法直接复制
Files.copy(file.toPath(), Paths.get(target.getPath(), file.getName()), option);
else
// 目录的话,递归调用本方法进行复制
copy(file, new File(target.getPath() + File.separator + file.getName()), isOverride);
}
}
}
/**
* 复制文件或目录
* copy(File, File, boolean)的重载方法
*
* @author 静心事成
* @param source 源文件/目录路径
* @param target 目标文件/目录路径
* @param isOverwrite 是否覆盖目标文件
* @throws IOException
* */
public static void copy(String source, String target, boolean isOverride) throws IOException {
copy(new File(source), new File(target), isOverride);
}
引用的类
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
相关方法
示例
public static void main(String[] args) {
String source = "D:\\imgPath";
String target = "D:\\imgPath2";
try {
copy(source, target, true);
} catch (IOException e) {
e.printStackTrace();
}
}
捐赠
若你感觉读到这篇文章对你有启发,能引起你的思考。请不要吝啬你的钱包,你的任何打赏或者捐赠都是对我莫大的鼓励。