`
miaoge
  • 浏览: 109346 次
  • 性别: 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盘的文件夹中去。原样是指只需文件夹中文件过去就可以,不用再还原文件夹。从键盘键入文件夹

     ResetFoldersTime 是专门针对这一情形而开发的,它的主要功能是根据各文件夹内部各文件创建/修改时间的早晚,重新批

    在使用专门的软件恢复数据时,文件的创建/修改时间往往能正确保留下来,但文件夹的创建/修改时间,似乎还没有哪款数据恢复软件能原样保留,而是被设置为数据恢复时的时间,这就带来一个尴尬的后果:所有的文件似乎都...

    多路径文件批量下载工具V1.0.3-支持批量下载文件到单独文件夹的工具-供大家学习研究参考

    1、支持批量下载列表文件中的所有文件到每个文件指定的目录下。 2、支持TXT文件导入。 3、支持TXT文件拖入。 4、支持下载错误文件筛选导出。 5、支持单文件多线程下载。 6、其它功能还在开发中。 7、支持断点续传。 ...

    蓝奏云批量下载,批量上传,目录下载等

    3. 批量下载链接:在选中多个文件后,通常会有“打包下载”或“批量下载”的选项出现,点击它会生成一个包含所有选定文件的下载链接。 4. 下载管理器:为了更高效地批量下载,推荐使用支持批量任务的下载管理器,如...

    一键删除和恢复WIN10此电脑上面的6个文件夹

    在Windows 10操作系统中,"此电脑"(也称为"我的电脑"或"文件资源管理器")是用户访问和管理计算机上所有文件和文件夹的主要入口。它包括几个预定义的文件夹,如“视频”、“图片”、“文档”、“下载”、“音乐”和...

    放在public文件夹下的静态文件

    总之,“放在public文件夹下的静态文件”这一描述指的是在Web项目中,将像`videojs`这样的静态资源放置在一个公共可访问的目录下,以便于Web服务器在运行时能够为客户端提供这些资源。这样做不仅方便了开发,也优化...

    【android开发】解析assets文件夹下XML资源文件

    在"PullParseXml"这个示例中,开发者可能创建了一个名为"PullParseXml.java"的类,该类包含了一个方法,专门用来从assets目录下的XML文件中提取数据。这个方法可能接受XML文件名作为参数,然后使用上述步骤进行解析...

    安卓SD卡中各个文件夹功能的详尽说明

    随着时间的推移,SD卡上会出现各种各样的文件夹,每个文件夹都有其特定的功能和用途。以下是对标题和描述中提到的一些主要文件夹的详尽说明: 1. `.android_secure`:这是官方应用转移到SD卡时产生的文件夹,存放了...

    windows鼠标右键-显示文件隐藏扩展名及系统和隐藏文件_安装脚本

    总的来说,了解如何显示和隐藏Windows中的隐藏文件和文件扩展名是提高系统管理效率的一个关键技能。通过这个压缩包提供的批处理文件,用户可以更加轻松地实现这一目的。记住,尽管快捷方式方便,但理解和掌握基础...

    绿色文件夹加密软件,快速加密文件夹

    文件夹加密是一种常见的数据安全措施,它通过特定的加密算法,将文件夹内的所有内容转化为密文,只有输入正确的解密密码,才能恢复原样,查看和使用其中的文件。这在保护敏感数据、防止非法访问和数据泄露方面有着...

    资料文件夹转移工具3.6.2

    这类工具通常是为了在更换电脑、系统升级或者整理硬盘空间时,能够快速安全地将用户的个人设置、文档、图片、音乐、视频等重要数据从一个位置转移到另一个位置。 描述中提到的同样为 "资料文件夹转移工具3.6.2",这...

    BAT批处理脚本-文件夹伪装.zip

    在“文件夹伪装.zip”这个压缩包中,包含了一个名为“文件夹伪装.bat”的批处理脚本,这个脚本主要用于改变文件夹的外观,使其看起来像是一个不同的文件类型,从而实现对文件夹的伪装。下面我们将详细探讨批处理脚本...

    批量更改文件内的文件

    标题"批量更改文件内的文件"指的是对一个文件夹内的所有文件进行统一的修改,改变它们的内容,但不改动文件的名称和扩展名。这样的操作可以极大地提高工作效率,避免手动逐个文件进行修改的繁琐过程。 描述中提到的...

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

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

    001_android文件夹分层结构

    "001_android文件夹分层结构"很可能是一个示例或教程,用于帮助开发者了解Android项目的目录结构。这个结构通常被称为“面包屑树分支结构”,这可能是指在Android Studio中显示的项目视图,它类似文件系统的面包屑...

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

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

    真正无锁IOCP回射服务器(IOCP Tcp EchoServer)

    标题中的“真正无锁IOCP回射服务器(IOCP Tcp EchoServer)”指的是一个使用了I/O完成端口(I/O Completion Port, IOCP)技术的TCP服务器,它实现了回射(Echo)服务,即接收到客户端发送的数据后,原样返回给客户端...

    netty案例集锦,netty demo,netty实战-netty-all.zip

    非阻塞I/O允许在一个线程中处理多个连接,提高了系统的吞吐量。 2. **高度可定制的编码和解码器**:Netty 提供了一套强大的编码和解码框架,包括ByteBuf,它可以更有效地管理缓冲区,以及ChannelHandler,用于处理...

Global site tag (gtag.js) - Google Analytics