【Java编程】Java复制文件夹及里面所有文件

来源:互联网 发布:好看的美剧 知乎 编辑:程序博客网 时间:2024/06/05 20:23

代码如下:

import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;/** * 复制文件夹及子文件 * @author FengYuan * */public class Test {public static void main(String[] args) throws Exception {File f = new File("E:/Test/a");// 要复制的文件夹File nf = new File("E:/Test/b"); // 要复制到的地方// true代表把a文件夹整个复制过去,false只复制子文件夹及文件。copy(f, nf, true);System.out.println("复制完毕");}public static void copy(File f, File nf, boolean flag) throws Exception {// 判断是否存在if (f.exists()) {// 判断是否是目录if (f.isDirectory()) {if (flag) {// 制定路径,以便原样输出nf = new File(nf + "/" + f.getName());// 判断文件夹是否存在,不存在就创建if (!nf.exists()) {nf.mkdirs();}}flag = true;// 获取文件夹下所有的文件及子文件夹File[] l = f.listFiles();// 判断是否为nullif (null != l) {for (File ll : l) {// 循环递归调用copy(ll, nf, flag);}}} else {System.out.println("正在复制:" + f.getAbsolutePath());System.out.println("到:" + nf.getAbsolutePath() + "\\" + f.getName());// 获取输入流FileInputStream fis = new FileInputStream(f);// 获取输出流FileOutputStream fos = new FileOutputStream(nf + "/" + f.getName());byte[] b = new byte[1024];// 读取文件while (fis.read(b) != -1) {// 写入文件,复制fos.write(b);}fos.close();fis.close();}}}}


阅读全文
0 0
原创粉丝点击