Java学习-045-目录中文件拷贝

时间:2022-04-09 07:20:09

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

目录文件拷贝源码:

     /**
* <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学习一目了然&mdash&semi;&mdash&semi;File类文件处理

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

  3. Java学习之InputStream中read&lpar;&rpar;与read&lpar;byte&lbrack;&rsqb; b&rpar;

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

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

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

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

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

  6. C&num;统计目录中文件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. PHP中统计目录中文件以及目录中目录的大小

    <?php  #循环遍历目录中所有的文件,并统计目录和文件的大小  $dirName="phpMyAdmin";  $dir=opendir($dirName);  #返回一 ...

随机推荐

  1. 从cookie的setDomain方法可以得知localhost不是域名

    http://www.baidu.com 其中baidu.com是一个域名.那么http://localhost 中的localhost是不是域名呢?我百度过,发现有人说这是域名.于是我在自己的web ...

  2. MySQL数据表生成ER图

    遇到没有说明文档的数据库的时候,一张一张表去分析,需要花费很长时间和精力. 幸好有一些工具,可以帮助我们生成ER图,这样看起来就一目了然: 下面我将自己的一次实践记录于下,供参考: 1.下载并安装工具 ...

  3. Count Good Substrings

    Codeforces Round #258 (Div. 2) D:http://codeforces.com/problemset/problem/451/D 题意:给你一个字符串,只有ab组成.相同 ...

  4. iOS 高仿&colon;花田小憩3&period;0&period;1

    前言 断断续续的已经学习Swift一年多了, 从1.2到现在的2.2, 一直在语法之间徘徊, 学一段时间, 工作一忙, 再捡起来隔段时间又忘了.思来想去, 趁着这两个月加班不是特别多, 就决定用swi ...

  5. hadoop 部署和调优

    一.集群安装 1.在所有的机器上建立相同的用户名,如:hadoop. $adduser hadoop $passwd hadoop 2.在/etc/hosts中添加机器名和IP hadoop@hado ...

  6. 梳理:python—同一个类中的方法调用

    为什么突然在此提到这个梳理问题呢? 因为在自己实践综合练习学过的知识时,突然觉得有些知识点的运用总是不成功,于是翻过课本进行回顾,总是觉得是对的,可是当再进一步思考“既然是对的,为什么在程序中总是不成 ...

  7. 2018&period;9&period;12 B树总结

    1. B-Tree B-树是一种平衡的多路查找树,它在文件系统中很有用. 1.1 B-Tree 特性 关键字集合分布在整颗树中: 任何一个关键字出现且只出现在一个结点中: 搜索有可能在非叶子结点结束: ...

  8. spring定时器cron

    关于cron表达式(参考资料):Cron 表达式包括以下 7 个字段: 秒 分 小时 月内日期 月 周内日期 年(可选字段) 特殊字符Cron 触发器利用一系列特殊字符,如下所示: 反斜线(/)字符表 ...

  9. &lpar;转&rpar;scikit-learn主要模块和基本使用方法

    从网上看到一篇总结的很不错的sklearn使用文档,备份勿忘. 引言 对于一些开始搞机器学习算法有害怕下手的小朋友,该如何快速入门,这让人挺挣扎的.在从事数据科学的人中,最常用的工具就是R和Pytho ...

  10. PHP 服务器及TP5框架遇到的几个错误

    一.Call to undefined function imagecreatefrompng(): LAMP环境搭建的博客,在提交内容的时候TP5框架报了一个错误,Call to undefined ...