挺晚的了,直接上码。敬请各位小主参阅,若有不足之处,敬请指正,非常感谢!

目录文件拷贝源码:

     /**
* <strong>目录拷贝</strong><br>
* <br>
* @author Aaron.ffp
* @version V1.0.0: autotest-base cn.ffp.autotest.base.util FileUtils.java copy, 2016-03-19 12:47:48.392 Exp $
*
* @param srcDir 源目录
* @param recCop 是否递归拷贝(true:是)
* @param desDir 目标目录
* @param recDir 是否拷贝目录(true:是)
* @param override 是否覆盖
*
* @return boolean 成功复制返回 true;否则返回 false
*/
public static boolean copy(String srcDir, boolean recCop, String desDir, boolean recDir, boolean override){
boolean success = false; if (StringUtils.isBlank(srcDir) || StringUtils.isBlank(desDir)) {
msg = "参数非法:源目录【" + srcDir + "】或目标目录【" + desDir + "】不可为空、null、Tab、回车等,请确认!";
logger.error(msg); return success;
} File src = new File(srcDir);
File des = new File(desDir); // 判断源目录是否存在且为目录
if (!src.exists() || !src.isDirectory()) {
msg = "目录拷贝失败:源目录【" + srcDir + "】不存在或者为文件,请确认!";
logger.error(msg);
return success;
} // 判断目标目录是否存在且为目录
if (des.isFile()) {
msg = "目录拷贝失败:目标目录【" + desDir + "】为文件,请确认!";
logger.error(msg);
return success;
} else if (!des.exists()) {
msg = "目录拷贝前,成功创建目标目录【" + desDir + "】,请知悉!";
logger.info(msg);
} // 判断目录是否以文件分割符结尾
srcDir = srcDir.endsWith(ConstantInfo.OS_FILE_SEPARATOR) ? srcDir : srcDir + ConstantInfo.OS_FILE_SEPARATOR;
desDir = desDir.endsWith(ConstantInfo.OS_FILE_SEPARATOR) ? desDir : desDir + ConstantInfo.OS_FILE_SEPARATOR; LinkedList<String> fList = FileUtils.getfList(srcDir, recCop); if (fList.isEmpty() || fList.size() == 0) {
msg = "源目录【" + srcDir + "】为空,无文件可被拷贝,请知悉!";
logger.info(msg);
success = true;
return success;
} int srcFileCount = fList.size();
int failCount = 0;
String srcFile = "";
String desFile = ""; for (int i = 0; i < srcFileCount; i++) {
srcFile = fList.get(i);
desFile = fList.get(i).replace((recDir ? srcDir : FileUtils.getfParent(srcFile)), desDir); if (!FileUtils.copy(srcFile, desFile, override)) {
msg = "目录拷贝:源目录【" + srcDir + "】,拷贝源文件【" + srcFile + "】至【" + desFile + "】失败,请确认!";
logger.error(msg); failCount++;
}
} msg = "目录拷贝:源目录【" + srcDir + "】,目标目录【" + desDir + "】,成功拷贝 " + (srcFileCount - failCount) + " 个文件,失败 " + failCount + " 个文件,请知悉!";
logger.info(msg); if (failCount < 1) {
success = true;
} return success;
}

  PS:上述源码中涉及的方法,请前往如下链接查看:

  获取目录文件列表:LinkedList<String> getfList(String dir, boolean recursion)

  文件拷贝:boolean copy(String srcFile, String desFile, boolean override)

目录文件拷贝单元测试源码:

     @Test(description="public static boolean FileUtils.copy(String srcDir, boolean recCop, String desDir, boolean recDir, boolean override) ---> 通过性\n", dependsOnMethods="test_copy_folder")
public void test_copy_folder_notOverride() {
String srcDir = ConstantInfo.PROJECT_RESOURCES_TEST;
String desDir = this.baseDir; fileList.clear(); Assert.assertFalse(FileUtils.copy(srcDir, true, desDir, false, false));
} @Test(description="public static boolean FileUtils.copy(String srcDir, boolean recCop, String desDir, boolean recDir, boolean override) ---> 通过性\n", dependsOnGroups="getfList", dependsOnMethods="test_copy_desFileOverride")
public void test_copy_folder() {
String srcDir = ConstantInfo.PROJECT_RESOURCES_TEST;
String desDir = this.baseDir; fileList.clear(); Assert.assertTrue(FileUtils.copy(srcDir, true, desDir, false, true));
}

单元测试源码

至此, Java学习-045-目录中文件拷贝 顺利完结,希望此文能够给初学 Java 的您一份参考。

最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^

Java学习-045-目录中文件拷贝的更多相关文章

  1. java统计指定目录中文件的个数和总的大小

    转: 统计指定目录中文件的个数和总的大小 package file; import java.io.File; import java.util.ArrayList; public class Fil ...

  2. java学习一目了然——File类文件处理

    java学习一目了然--File类文件处理 File类(java.io.File) 构造函数: File(String path) File(String parent,String child) F ...

  3. Java学习之InputStream中read()与read(byte[] b)

    Java学习之InputStream中read()与read(byte[] b) 这两个方法在抽象类InputStream中都是作为抽象方法存在的, JDK API中是这样描述两者的: read() ...

  4. 在Windows下通过命令行或者.bat文件统计一个目录中文件数量

    在Windows下面怎样通过命令行统计一个目录中文件的数量,或者说,如果在一个.bat文件中,统计一个目录中的文件数量? 我原来以为是不可能的,要编一个vbs程序什么的,后来到网上找了下,发现还真是可 ...

  5. Java通过NIO实现快速文件拷贝的代码

    将内容过程重要的内容片段做个记录,下面的内容段是关于Java通过NIO实现快速文件拷贝的内容. public static void fileCopy( File in, File out ) thr ...

  6. C#统计目录中文件MD5值

    1. [代码]统计目录中文件MD5值 using System.IO;using System.Security.Cryptography;using System.Collections;using ...

  7. 总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇

    本文是Java IO总结系列篇的第5篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...

  8. Java IO和Java NIO 和通道 在文件拷贝上的性能差异分析

    1.  在JAVA传统的IO系统中,读取磁盘文件数据的过程如下: 以FileInputStream类为例,该类有一个read(byte b[])方法,byte b[]是我们要存储读取到用户空间的缓冲区 ...

  9. Java学习笔记-基础语法Ⅸ-文件

    File File是文件和路径名的抽象表示,File封装的并不是一个真正存在的文件,是一个路径名,可以存在也可以不存在 常用方法: 创建文件:createNewFile() 创建目录:mkdir() ...

随机推荐

  1. java unicode转中文

    public static String unicodeToString(String str) { Pattern pattern = Pattern.compile("(\\\\u(\\ ...

  2. BZOJ3607 : 数据网络

    首先答案一定是包含直径某个端点的一个连通块里所有边权值之和,设直径为$AB$,以$A$和$B$分别为根进行处理. 首先按照最长路法则将这棵树进行树链剖分,那么每个叶子的贡献为它与它所在链顶端的点的距离 ...

  3. Android listview与adapter用法

    listview与adapter用法 博客分类: android   一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView ...

  4. 使用 smartupload 上传图片

    使用  smartupload  请参见 elleniou 的 博客 : http://www.cnblogs.com/elleniou/archive/2012/09/24/2700583.html

  5. Collections.sort的三种用法

    /** * @author guwh * @version 创建时间:2011-11-3 上午10:49:36 * 类说明 */ package com.jabberchina.test; impor ...

  6. 【BZOJ】2956: 模积和

    题意 求\(\sum_{i=1}^{n} \sum_{j=1}^{m} (n \ mod \ i)(m \ mod \ j)[i \neq j] \ mod \ 19940417\), \((n, m ...

  7. FPGA的典型应用领域

    本文关键字:fpga应用,fpga应用领域, fpga培训,FPGA应用开发入门与典型实例 一.数据采集和接口逻辑领域 1.FPGA在数据采集领域的应用 由于自然界的信号大部分是模拟信号,因此一般的信 ...

  8. Flex Vector使用(转)

    从前(Flex SDK 4.0 以前版本)创建 Vector 实例一定要如下所示,这样的语法使我们在构造 Vector 对象时无法指定元素: var v:Vector.<T> = new ...

  9. TCP连接探测中的Keepalive和心跳包

    TCP连接探测中的Keepalive和心跳包 tcp keepalive 心跳 保活 Linuxtcp心跳keepalive保活1. TCP保活的必要性 1) 很多防火墙等对于空闲socket自动关闭 ...

  10. ActiveMQ 即时通讯服务——浅析

    一. 概述与介绍 ActiveMQ 是Apache出品,最流行的.功能强大的即时通讯和集成模式的开源服务器.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provide ...