将一个目录里的所有目录和文件复制到另一个文件夹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将一个目录里的所有目录和文件复制到另一个文件夹相关的知识,希望对你有一定的参考价值。

package com.io.datain;

import java.io.*;

public class TestCopay1 {

	public static void main(String[] args) throws IOException {

		File file = new File("D:/Java/20160516-day1");

		File file1 = new File("D:/Java/20160516-day102");
		copyFileDir(file, file1);
	}

	/**
	 * 拷贝目录
	 * 
	 * @param file
	 * @param file1
	 */
	private static void copyFileDir(File file, File file1) {
		if (file.isDirectory()) {
			if (!file1.exists()) {
				file1.mkdirs();
			}

			File[] files = file.listFiles();
			for (File item : files) {
				if (item.isDirectory()) {
					copyFileDir(
							new File(file.getAbsolutePath(), item.getName()),
							new File(file1.getAbsolutePath(), item.getName()));
				} else {
					
					copyFile(new File(file.getAbsolutePath(), item.getName()),
							new File(file1.getAbsolutePath(), item.getName()));
				}
			}
		} else {
			copyFile(file, new File(file1.getAbsolutePath() + file.getName()));
		}
	}

	/**
	 * 拷贝文件
	 * 
	 * @param file
	 * @param file1
	 * @return
	 */
	private static boolean copyFile(File file, File file1) {

		// 创建读取文件的输入流,输出流
		// 输入流,对于程序来说,是向程序中输入数据,input
		FileInputStream fis = null;
		// 输出流,对于程序来说,是程序向程序外输出数据,output
		FileOutputStream fos = null;
		try {
			fis = new FileInputStream(file);
			fos = new FileOutputStream(file1);
			byte[] by = new byte[1024];
			int a = 0;
			a = fis.read(by);// 将读取到的数据放入字节数组by中,并获取放入到字节数组中的字节长度a
			while (a != -1) {
				/* 读取多个数据 */
				fos.write(by, 0, a);// 将数据写入b文件中
				a = fis.read(by);// 继续读取下一次
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				fis.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			try {
				fos.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return true;
	}
}

 

以上是关于将一个目录里的所有目录和文件复制到另一个文件夹的主要内容,如果未能解决你的问题,请参考以下文章

linux 把当前目录的一个子目录里的文件移动到另一个子目录里用啥命令

将文件复制到另一个名称的同一目录

linux 怎样复制一个目录的所有文件到另一个目录

使用 Grunt.js 将所有文件从目录复制到另一个目录

使用 Grunt.js 将所有文件从目录复制到另一个目录

text 将目录及其所有文件复制到另一个目录