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

代码如下:

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();
				// 判断是否为null
				if (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();
			}
		}
	}
}


  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值