package 综合练习;
import java.io.*;
// 文件复制
public class CopyFile {
public static void main(String[] args) throws IOException{
String scr = "C:\\Users\\ly\\Desktop\\代码\\java\\src";
String dest = "D:Test01";
//copyFile(scr, dest);
copyFolder(scr,dest);
}
// 复制文件
public static void copyFile(String srcFile, String destFile) throws IOException{
File src = new File(srcFile);
File dest = new File(destFile);
dest.getParentFile().mkdirs();
dest.createNewFile();
try(FileReader fr = new FileReader(src);
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter(dest);
BufferedWriter bw = new BufferedWriter(fw)){
String line = null;
while((line = br.readLine()) != null){
bw.write(line);
bw.newLine();
bw.flush();
}
}catch (IOException e){
e.printStackTrace();
}
}
public static void copyFolder(String srcFile, String destFile)throws IOException{
File src = new File(srcFile);
File dest = new File(destFile); // C:\Users\ly\Desktop\代码\java\src\Test01.java\数据流---错误
dest.getParentFile().mkdirs(); // 创建文件夹
File[] files = src.listFiles();
String dirName = ""; // dirName 存储文件夹名称
String tmpdestFile = dest.getPath(); // 临时文件地址
String tmpsrcFile = src.getPath();
for (File f:files) {
if(f.isDirectory()){
dirName = "\\" + f.getName(); // 文件夹名字
tmpsrcFile += dirName; // 需要添加的文件夹加 原始路径
tmpdestFile += dirName;
copyFolder(tmpsrcFile, tmpdestFile); // 递归------一直递归到是文件为止
tmpdestFile = destFile; // 重新初始文件地址,如果不初始的话会写入错误地址
tmpsrcFile = srcFile;
}
if(f.isFile()){
// D:Test01\Test01.java\数据流
destFile += "\\" + f.getName();
copyFile(f.getPath(), destFile);
destFile = tmpdestFile; // 初始文件上一个路径 -- 不初始化会出错比如: // D:Test01\Test.java\Test.java
}
}
}
}
文件的复制(包括文件夹和子文件)
猜你喜欢
转载自blog.csdn.net/weixin_43346223/article/details/87971155
今日推荐
周排行