public class CopyDir {
public static void main(String[] args) {
//源文件路径
String srcpath = "F:/test/ts";
//目标文件路径
String destpath = "F:/test/ts2";
//源文件
File src = new File(srcpath);
//目标文件
File dest = new File(destpath);
if(src.isDirectory()) {
dest = new File(destpath,src.getName());
}
copyDir(src,dest);
}
private static void copyDir(File src, File dest) {
if(src.isFile()) {
FileUtil.copyFile(src, dest);
}else if(src.isDirectory()) {
//确保目标文件夹存在
dest.mkdirs();
//获取下一级目录
for(File sub : src.listFiles()) {
copyDir(sub,new File(dest,sub.getName()));
}
}
}
}
--------复制文件的FileUtil类
public class FileUtil {
public static void copyFile(File src, File dest) {
InputStream is = null;
OutputStream os = null;
try {
// 输入流
is = new FileInputStream(src);
// 输出流
os = new FileOutputStream(dest);
// 读取源文件内容,并写入目的文件
byte[] bt = new byte[1024];
int len = 0;
while ((len = is.read(bt)) != -1) {
os.write(bt, 0, len);
os.flush();
}
System.out.println("复制成功");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
// 先打开的后关闭
if (os != null) {
os.close();
}
if (is != null) {
is.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}