Java学习-045-目录中文件拷贝
挺晚的了,直接上码。敬请各位小主参阅,若有不足之处,敬请指正,非常感谢!
目录文件拷贝源码:
/**
* <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-目录中文件拷贝的更多相关文章
- java统计指定目录中文件的个数和总的大小
转: 统计指定目录中文件的个数和总的大小 package file; import java.io.File; import java.util.ArrayList; public class Fil ...
- java学习一目了然——File类文件处理
java学习一目了然--File类文件处理 File类(java.io.File) 构造函数: File(String path) File(String parent,String child) F ...
- Java学习之InputStream中read()与read(byte[] b)
Java学习之InputStream中read()与read(byte[] b) 这两个方法在抽象类InputStream中都是作为抽象方法存在的, JDK API中是这样描述两者的: read() ...
- 在Windows下通过命令行或者.bat文件统计一个目录中文件数量
在Windows下面怎样通过命令行统计一个目录中文件的数量,或者说,如果在一个.bat文件中,统计一个目录中的文件数量? 我原来以为是不可能的,要编一个vbs程序什么的,后来到网上找了下,发现还真是可 ...
- Java通过NIO实现快速文件拷贝的代码
将内容过程重要的内容片段做个记录,下面的内容段是关于Java通过NIO实现快速文件拷贝的内容. public static void fileCopy( File in, File out ) thr ...
- C#统计目录中文件MD5值
1. [代码]统计目录中文件MD5值 using System.IO;using System.Security.Cryptography;using System.Collections;using ...
- 总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇
本文是Java IO总结系列篇的第5篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...
- Java IO和Java NIO 和通道 在文件拷贝上的性能差异分析
1. 在JAVA传统的IO系统中,读取磁盘文件数据的过程如下: 以FileInputStream类为例,该类有一个read(byte b[])方法,byte b[]是我们要存储读取到用户空间的缓冲区 ...
- Java学习笔记-基础语法Ⅸ-文件
File File是文件和路径名的抽象表示,File封装的并不是一个真正存在的文件,是一个路径名,可以存在也可以不存在 常用方法: 创建文件:createNewFile() 创建目录:mkdir() ...
随机推荐
- java unicode转中文
public static String unicodeToString(String str) { Pattern pattern = Pattern.compile("(\\\\u(\\ ...
- BZOJ3607 : 数据网络
首先答案一定是包含直径某个端点的一个连通块里所有边权值之和,设直径为$AB$,以$A$和$B$分别为根进行处理. 首先按照最长路法则将这棵树进行树链剖分,那么每个叶子的贡献为它与它所在链顶端的点的距离 ...
- Android listview与adapter用法
listview与adapter用法 博客分类: android 一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView ...
- 使用 smartupload 上传图片
使用 smartupload 请参见 elleniou 的 博客 : http://www.cnblogs.com/elleniou/archive/2012/09/24/2700583.html
- Collections.sort的三种用法
/** * @author guwh * @version 创建时间:2011-11-3 上午10:49:36 * 类说明 */ package com.jabberchina.test; impor ...
- 【BZOJ】2956: 模积和
题意 求\(\sum_{i=1}^{n} \sum_{j=1}^{m} (n \ mod \ i)(m \ mod \ j)[i \neq j] \ mod \ 19940417\), \((n, m ...
- FPGA的典型应用领域
本文关键字:fpga应用,fpga应用领域, fpga培训,FPGA应用开发入门与典型实例 一.数据采集和接口逻辑领域 1.FPGA在数据采集领域的应用 由于自然界的信号大部分是模拟信号,因此一般的信 ...
- Flex Vector使用(转)
从前(Flex SDK 4.0 以前版本)创建 Vector 实例一定要如下所示,这样的语法使我们在构造 Vector 对象时无法指定元素: var v:Vector.<T> = new ...
- TCP连接探测中的Keepalive和心跳包
TCP连接探测中的Keepalive和心跳包 tcp keepalive 心跳 保活 Linuxtcp心跳keepalive保活1. TCP保活的必要性 1) 很多防火墙等对于空闲socket自动关闭 ...
- ActiveMQ 即时通讯服务——浅析
一. 概述与介绍 ActiveMQ 是Apache出品,最流行的.功能强大的即时通讯和集成模式的开源服务器.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provide ...