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

目录文件拷贝源码:

     /**
* <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. iOS系统架构

    1.iOS系统架构 iOS的系统架构分为四个层次 核心操作系统层 (Core OS) 它包括 内存管理 , 文件系统 , 电源管理以及一些其他的操作系统任务, 它可以直接和硬件设备进行交互 核心服务层 ...

  2. 【BZOJ3531】[Sdoi2014]旅行 树链剖分+动态开点线段树

    [BZOJ3531][Sdoi2014]旅行 Description S国有N个城市,编号从1到N.城市间用N-1条双向道路连接,满足从一个城市出发可以到达其它所有城市.每个城市信仰不同的宗教,如飞天 ...

  3. Leetcode Construct Binary Tree from Preorder and Inorder Traversal

    Given preorder and inorder traversal of a tree, construct the binary tree. Note:You may assume that ...

  4. ACM 独木舟上的旅行

    独木舟上的旅行 时间限制:3000 ms  |  内存限制:65535 KB 难度:2   描述 进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别.一条独木舟最多只能乘坐两个人,且乘客 ...

  5. NOIp 2012 #2 借教室 Label:区间修改线段树

    题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自然 ...

  6. 3分钟wamp中php安装 pear 然而并没有用 并没能借此安装phpunit 不得不借用了其他的方式安装phpunit

    15:42 2015/11/233分钟wamp中php安装 pear环境介绍:windows10,wamp2.5(推荐博客的博主是win7,所以系统应该不是问题)注意:在过程中要输入一次 yes,不要 ...

  7. #define is unsafe——I

    I. #define is unsafe Have you used #define in C/C++ code like the code below? #include <stdio.h&g ...

  8. 李洪强iOS经典面试题上

    李洪强iOS经典面试题上     1. 风格纠错题 修改完的代码: 修改方法有很多种,现给出一种做示例: // .h文件 // http://weibo.com/luohanchenyilong/ / ...

  9. 李洪强漫谈iOS开发[C语言-048]-打印平方表

    打印平方表

  10. Js中找任意对象的原型方法及改造原型

    Java中有运行时类型识别,js可以很方便的模仿这个特性,因为所有js对象都有一个属性constructor(构造器),表示这个对象的构造方法,原型与构造方法同名,所以可以通过这儿知道任意对象的原型名 ...