`
miaoge
  • 浏览: 107544 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类

【I/O流】把一个文件夹里的所有文件包括文件夹 一并原样拷贝到另一个目录中

阅读更多

该文件夹下有子文件夹(子文件夹里又有文件)、文件(包括图片、文本文件)···

/**
 * 把一个文件夹里的所有文件包括文件夹 一并原样拷贝到另一个目录中; 
 *@author 小苗
 */
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class CopyDir001 {

	private  File dirFrom;
	private  File dirTo;

	public CopyDir001(File dirFrom, File dirTo) {
		super();
		this.dirFrom = dirFrom;
		this.dirTo = dirTo;
	}
	// 目标路径创建文件夹
	public void listFileInDir(File file) {
		File[] files = file.listFiles();
		for (File f : files) {
			String tempfrom = f.getAbsolutePath();    //源路径
			String tempto = tempfrom.replace(dirFrom.getAbsolutePath(),
					dirTo.getAbsolutePath()); // 把前面部分路径名替换为 目标路径名
			if (f.isDirectory()) {
				File tempFile = new File(tempto);
				tempFile.mkdirs();           //创建空文件夹
				listFileInDir(f);         //递归调用
			} else {
				System.out.println("源文件:" + tempfrom);
				System.out.println("目标点:" + tempto);
				copy(tempfrom, tempto);
			}
		}
	}
	/**
	 * 文件拷贝方法
	 */
	public void copy(String from, String to) {
		try {
			InputStream in = new FileInputStream(from);
			OutputStream out = new FileOutputStream(to);

			byte[] buff = new byte[1024];
			int len = 0;
			while ((len = in.read(buff)) != -1) {
				out.write(buff, 0, len);
			}
			in.close();
			out.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		File fromfile = new File("e:\\peixun\\test");// 源文件夹
		File tofile = new File("e:\\JavaZiliao\\peixun");// 目标

		CopyDir001 copy = new CopyDir001(fromfile,tofile);
		copy.listFileInDir(fromfile);

	}
}

 

分享到:
评论

相关推荐

    复制目录下的文件和子目录到新目录

    将目录和目录下的所有文件拷贝到新地方。目录获取时是递归的,保证可以将目录和下面的文件拷贝完全。

    遍历文件夹,再复制文件,Java源代码

    例如url=c:\文件夹1,而文件夹1中包含多个文件夹,现在程序要求遍历所有文件夹找出文件夹中的文件,然后原样保存到D盘的文件夹中去。原样是指只需文件夹中文件过去就可以,不用再还原文件夹。从键盘键入文件夹

    文件夹的拷贝.rar

    java通过流的操作,实现文件夹的拷贝,通过循环遍历将文件夹中的所有数据,文件夹,文件,包括文件中的数据都原样的考到指定的位置

    网管教程 从入门到精通软件篇.txt

    Axx:ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取01-99的数字) A3L:Authorware 3.x库文件 A4L:Authorware 4.x库文件 A5L:Authorware 5.x库文件 A3M,A4M:Authorware Macintosh...

    timeout_folder_rescue:Bash 脚本,将源文件夹的内容逐个文件复制到目标文件夹。 如果文件复制挂起,该文件将被跳过并记录

    描述Bash 脚本,将源文件夹的内容逐个文件复制到目标文件夹。 如果单个文件的复制过程挂起超过 10 秒,或返回输入/输出错误,脚本将跳过此文件并记录其名称。 如果目标文件已存在,脚本将跳过文件而不记录其名称。 ...

    输入源文件和目的文件名,实现文件原样压缩加密复制

    输入源文件名和目的文件名,实现源文件的原样复制,压缩复制和加密复制

    U盘文件复制专家 V2.0.0(运行会自动在后台监控USB接口)

    按日期时间生成文件夹,保证所拷贝U盘的文件目录树为原样,方便查看 B.不锁定U盘,拷贝完成U盘弹出自如。同类软件在拷贝完文件之后,无法正常弹出U盘 C.可选开机自动运行 D.自定义拷贝的文件类型,合理选择所需 E....

    apache-tomcat-9.0.31-windows-x64.zip

    (把downloads文件夹拷贝到webapps中) 3>启动tomcat,访问资源: http://ip:8080/downloads/xxx.jpg 容器与组件 Servlet是tomcat容器中的一个组件。 容器包含组件。 组件必须在容器的管理下才可以运行。...

    如何使变成灰色的文件夹选项恢复使用

    双击本注册表文件,刷新后,即可使“文件夹选项”恢复原样,变成可使用状态。

    sketch-pages-to-folders:草绘插件,可将Sketch文件的所有画板导出到基于Sketch文件页面的文件夹中

    插件可将Sketch文件的所有画板导出到文件夹中,这些文件夹以Sketch文件的页面命名。 安装 解压缩 双击.sketchplugin文件进行安装 执照 MIT许可证(MIT) 版权所有(c)2017 Ivan Bozic 特此免费授予获得该软件和...

    U盘文件分拣专家

    按日期时间生成文件夹,保证所拷贝U盘的文件目录树为原样,方便查看 B.当发现有重名文件时自动以日期时间命名 C.可以选择拷贝时机,是延时拷贝还是立即拷贝,建议延时15秒 D.自定义拷贝的文件类型,合理...

    vue引入静态js文件的方法

    由于build后的vue项目基本已经看不出原样,因此需要创建一个文件,并在打包的时候不会进行编译。 vue-cli 2.0的作法是在static文件下创建js。vue-cli 3.0 的写法则是直接在public文件夹下创建js、 具体操作如下: 1...

    nntpPoster:将文件和文件夹发布到usenet的实用程序

    一个实用程序,用于将文件和文件夹批量上载到Usenet。 简短概述 该实用程序允许您批量上传文件和/或文件夹。 (可选)可以混淆上载内容,以便只有选择索引器才能知道上载的确切文件。 先决条件 为了运行此实用程序...

    楼月免费iTunes备份管理器 v2.3免费版.zip

    我们可以使用iTunes软件将苹果手机或iPad平板电脑上的所有文件备份到电脑上,但这些文件均是按照特定格式保存在电脑上的,我们无法直接查看其在手机上时的文件系统结构,使用楼月免费iTunes备份管理器后,该软件能够...

    AutoCopy2U批量U盘USB存储设备复制备份工具 v1.2.433.102.zip

    AutoCopy2U自动批量USB存储设备拷贝/备份工具软件是一款批量全自动的USB存储设备拷贝/备份工具,可以实现将电脑中或者其他存储设备中的 指定的文件数据,全自动原样的拷贝/备份到新插入的USB移动存储设备中。...

    python2.7实现复制大量文件及文件夹资料

    说明:CopyFiles1是可以将sourceDir连子目录一起原样复制到targetDir,而CopyFiles2是在sourceDir中筛选特定格式文件,然后将其直接放在targetDir中,会很乱。但是很快 import os import time import shutil ...

    isite:http-源码开源

    根目录只有2个文件夹,所有原始都在src下面,dist是生成输出目录。 构建规则: src下面每个文件夹都会出现在dist下面,每一个文件夹都对应着一个子域名,某些game文件夹对应着 ; 只要名称为index.html的文件就会被...

    ejs-sass-static-boilerplate:使用EJS和SASS的静态网站样板

    布伦顿的前端样板 使用EJS,SASS和最新JavaScript语法来构建完全静态的生产代码,并在开发过程中进行快速,... 此文件夹中的所有内容都将原样复制(保持文件夹/文件结构)到dist文件夹中 如果src/static有images/pineap

    Android开发之资源目录assets与res/raw的区别分析

    本文实例讲述了Android开发之资源目录assets与res/raw的区别。分享给大家供大家参考,具体如下: ...res/raw:存放通用的文件, 该文件夹内的文件将不会被编译成二进制文件,按原样复制到设备上。 res/values:存

Global site tag (gtag.js) - Google Analytics