欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-04 08:09:12
...

文件的复制需要用到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();
				}
			}
		}
}
}