我们在日常的电脑使用中,经常需要在当前目录或当期目录及其子目录中查找文件,并获取相应的文件路径名。在我们的自动化测试中,也经常需要确认文件在目录中是否成功生成或已存在,因而我写了一个小方法来实现。

获取文件在目录中的路径方法源码如下所示:

     /**
* <strong>在目录中查找文件</strong><br>
* <ul>
* <li>若存在文件则返回文件路径,若不存在则返回空</li>
* <li>若存在参数非法,则返回null</li>
* </ul>
* <br>
* @author Aaron.ffp
* @version V1.0.0: autotest-base cn.ffp.autotest.base.util FileUtils.java search, 2016-03-24 23:17:52.897 Exp $
*
* @param dir 目录
* @param fName 文件名
* @param rec 是否级联目录查找
*
* @return 文件路径
*/
public static String search(String dir, String fName, boolean rec) {
String fp = ""; if (StringUtils.isBlank(dir) || StringUtils.isBlank(fName)) {
msg = "参数非法:目录【" + dir + "】或文件名【" + fName + "】不可为空、null、Tab、回车等,请确认!";
logger.error(msg); return null;
} LinkedList<String> fList = FileUtils.getfList(dir, rec); if (fList.isEmpty()) {
return "";
} for (int i = 0; i < fList.size(); i++) {
if (fList.get(i).endsWith(fName)) {
fp = fList.get(i); return fp;
}
} return fp;
}

获取文件在目录中的路径单元测试源码如下所示:

     @Test(description="public static String FileUtils.search(String dir, String fName, boolean rec) ---> 通过性:级联查找\n", dependsOnGroups="getfList")
public void test_search_rec() {
String dir = ConstantInfo.PROJECT_RESOURCES_TEST;
String fName = "readCsv.csv";
String path = ConstantInfo.PROJECT_RESOURCES_TEST + "APICsvTest" + ConstantInfo.OS_FILE_SEPARATOR + "readCsv.csv"; fileList.clear(); Assert.assertEquals(FileUtils.search(dir, fName, true), path);
} @Test(description="public static String FileUtils.search(String dir, String fName, boolean rec) ---> 破坏性:参数非法\n", dependsOnGroups="getfList")
public void test_search_argInvalid() {
String dir = ConstantInfo.PROJECT_RESOURCES_TEST;
String fName = ""; fileList.clear(); Assert.assertTrue(FileUtils.search(dir, fName, false) == null);
} @Test(description="public static String FileUtils.search(String dir, String fName, boolean rec) ---> 通过性:非级联查找\n", dependsOnGroups="getfList")
public void test_search_notRec() {
String dir = ConstantInfo.PROJECT_RESOURCES_TEST;
String fName = "readCsv.csv"; fileList.clear(); Assert.assertEquals(FileUtils.search(dir, fName, false), "");
}

获取文件在目录中的路径单元测试源码

至此, Java学习-043-获取文件在目录中的路径 顺利完结,希望此文能够给初学 JavaWeb 的您一份参考。

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

Java学习-043-获取文件在目录中的路径的更多相关文章

  1. 【原创】ABAP根据文件路径获取文件所在目录(续)

    在上一篇文章<ABAP根据文件路径获取文件所在目录>中,我主要的思路是采用 “SPLIT dobj AT sep INTO TABLE result_tab” 句型将文件全路径按分隔符“\ ...

  2. iOS 获取文件的目录路径的几种方法 [转]

    iOS 获取文件的目录路径的几种方法 2 years ago davidzhang iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. d ...

  3. Java学习-021-Properties 获取配置项对应的值

    在日常的脚本编写过程中,通常会获取配置文件中的配置项,以执行相应的业务逻辑. 小二上码...若有不足之处,敬请大神指正,不胜感激! 获取配置项值的源码如下所示: /** * Get value fro ...

  4. Java学习-014-文本文件写入实例源代码(两种写入方式)

    此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 第一种:文本文件写入,若文件存在则删除原文件,并重新创建文件.源代码如下所示: /** * @fun ...

  5. Java学习-013-文本文件读取实例源代码(两种数据返回格式)

    此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 1.读取的文本文件内容以一维数组[LinkedList<String>]的形式返回,源代 ...

  6. Java学习-011-创建文件实例及源代码

    此文源码主要为应用 Java 创建文件的源代码.若有不足之处,敬请大神指正,不胜感激! 创建文件的源代码如下所示: /** * @function 文件操作:创建文件.若文件不存在,则直接创建文件:若 ...

  7. Java学习-010-创建文件夹源代码

    此文源码主要为应用 Java 创建文件目录的源码.若有不足之处,敬请大神指正,不胜感激! 创建文件夹源代码如下所示: /** * @function 文件操作:创建文件夹.若文件夹不存在,则级联创建文 ...

  8. 【原创】ABAP根据文件路径获取文件所在目录

    *&---------------------------------------------------------------------* *& Form frm_get_pat ...

  9. Python开发【笔记】:从海量文件的目录中获取文件名--方法性能对比

    Python获取文件名的方法性能对比 前言:平常在python中从文件夹中获取文件名的简单方法   os.system('ll /data/')   但是当文件夹中含有巨量文件时,这种方式完全是行不通 ...

随机推荐

  1. 【SAP BO】【DI】DataService 服务无法启动。错误1069:由于登录失败而无法启动服务

    重启BI服务器后,突然发现DataServices服务无法启动,提示: 错误 1069:由于登录失败而无法启动服务. 解决方法: (1)打开控制面板--> 服务 --> 右键点击Data ...

  2. So you want to be a 2n-aire?[HDU1145]

    So you want to be a 2n-aire?Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java ...

  3. 51Nod 1001 数组中和等于K的数对 Label:Water

    给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对.例如K = 8,数组A:{-1,6,5,3,4,2,9,0,8},所有和等于8的数对包括(-1,9),(0 ...

  4. 51Nod 1002 数字三角形 Label:水水水 && 非学习区警告

    一个高度为N的由正整数组成的三角形,从上走到下,求经过的数字和的最大值. 每次只能走到下一层相邻的数上,例如从第3层的6向下走,只能走到第4层的2或9上.      5   8 4  3 6 9 7 ...

  5. ubuntu13.04下安装jdk7

    参考http://www.neversaydie.cc/ubuntu-install-jdk-in-detailed/ 而来 1.手工从Oralce官网下载jdk-7u25-linux-x64.gz  ...

  6. HBase1.0以上版本的API改变

    HBase1.0以上版本已经废弃了 HTableInterface,HTable,HBaseAdmin等API的使用,新增了一些API来实现之前的功能: Connectioninterface: Co ...

  7. ng-switch 指令

    <!--标准用法--> <div ng-switch on="showSecret"> <div ng-switch-when="true& ...

  8. Number Sequence

    Number Sequence   A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) ...

  9. 对AFN的二次封装

     .h .m

  10. ado.net 完整修改删除,攻击防攻击

    完整修改和删除:当你输入了要删除的用户名,先提示有没有此条数据 先查 后删/后改------------ using System; using System.Collections.Generic; ...