java复制文件到其他目录下
package Exercise.utils;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Clone {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
copy(new File("C:\\Users\\admin\\Desktop\\ajax"),new File("E:\\前端资料\\File"),list);
System.out.println(list);
}
//
/**
*@author shark
*@date 2021/5/2 17:06
*desc
*/
public static void copy(File src, File des, List l){
// l数组保存需要拷贝文件的文件夹和子文件夹
if (src.isDirectory()){
if (l.size() == 0){
l.add(src.getAbsolutePath().substring(src.getAbsolutePath().lastIndexOf("\\")));
System.out.println(des.getAbsolutePath()+l.get(0));
}else{
String s = (String) l.get(0);
l.add(src.getAbsolutePath().substring(src.getAbsolutePath().lastIndexOf(s)));
}
}
// 利用递归去复制
File[] files =src.listFiles();
for (File item :
files) {
if (item.isDirectory()) {
copy(item, des, l);
}
else {
new File(des.getAbsolutePath() + l.get(l.size() - 1)).mkdir();
FileInputStream fis = null;
FileOutputStream fos = null;
try {
byte[] bytes = new byte[1024];
fis = new FileInputStream(item);
fos = new FileOutputStream(des.getAbsolutePath() + item.getAbsolutePath().substring(src.getAbsolutePath().lastIndexOf((String) l.get(0))));
int index = 0;
while ((index = fis.read(bytes)) != -1) {
fos.write(bytes, 0, index);
fos.flush();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fos != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
}
}
需要拷贝的目录
需要复制到的目录
启动程序