Java把指定文件夹下的所有文件复制到指定目录下

文件的复制需要用到java的io流知识,下面是代码示例,相关代码都打了注释,对于理解还是有点帮助的

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyDemo {
	public static void main(String[] args) throws IOException {
//目标源文件夹
		File source = new File("H:/MyCode/20190403");
		File file = new File("H:/H");
//创建文件夹
		file.mkdir();
//目标新文件夹
		File fil = new File("H:/H/20190403");
		copy(source, fil);
		System.out.println("复制成功");
	}

	public static void copy(File source, File fil) throws IOException {
// 判断源目录是不是一个目录
		if(!source.isDirectory()){
//如果不是目录就不复制
			return;
		}
//创建目标目录的file对象
		if (!fil.exists()) {
//不存在就创建文件夹
			fil.mkdir();
		} else {
			return;
		}
	//如果源文件存在就复制
		if (source.exists()) {
	// 获取源目录下的File对象列表
			File[] files = source.listFiles();

			for (File file2 : files) {
//新文件夹的路径
				File file4 = new File(fil + File.separator + file2.getName());
				
				if (file2.isDirectory()) {
					copy(file2, file4);
				}
				if (file2.isFile()) {
					FileInputStream in = new FileInputStream(file2);
					FileOutputStream out = new FileOutputStream(file4);

					byte[] bs = new byte[1026];

					int count = 0;
//循环把源文件的内容写入新文件
					while ((count = in.read(bs, 0, bs.length)) != -1) {
						out.write(bs, 0, count);
					}
//关闭流
					out.flush();
					out.close();
					in.close();
				}
			}
		}
}
}

版权声明:本文为weixin_44578470原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。