直接写入文件夹路径即可实现复制
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyDirectory {
public static void main(String[] args) {
File copyFile = new File("要复制的文件夹路径");
copy(copyFile);
}
/**
* 利用递归实现遍历,实现复制文件夹和文件
* @param copyFile 要复制的文件夹
*/
public static void copy(File copyFile){
// 整合路径 "E"可以自行修改为其他
File toFile = new File("E"+copyFile.getAbsolutePath().substring(1));
// 先创建文件夹
toFile.mkdirs();
File[] files = copyFile.listFiles();
for (File file : files) {
if (file.isFile()) {
// 复制文件
copyFiles(file,toFile.getAbsolutePath()+"\\"+file.getName());
} else if (file.isDirectory()) {
// 是文件夹 递归
copy(file);
}
}
}
/**
* 复制一个文件到指定位置
* @param copyfile 要复制的文件
* @param toadress 复制后的文件要存放的路径
*/
public static void copyFiles(File copyfile,String toadress){
FileInputStream fis = null;
FileOutputStream fos = null;
// System.out.println(copyadress);
// System.out.println(toadress);
try {
fis = new FileInputStream(copyfile.getAbsolutePath());
fos = new FileOutputStream(toadress,true);
// 避免冗余
byte[] bytes = new byte[(int) copyfile.length()];
fis.read(bytes);
fos.write(bytes);
} catch (Exception e) {
System.out.println("文件复制有误!");
}finally {
try {
fos.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}