以下三个场景,在我们日常的测试开发中经常遇到:

  1. 软件自动化测试,在进行参数测试时,我们通常将所有相似功能的参数文件统一放在一个目录中,在自动化程序启动的时候,获取资源参数文件夹中所有参数文件,然后解析实现参数化;
  2. 自动化测试脚本,每个测试用例类运行时,在 beforeClass(通常选这个) 或 beforeTest 前获取对应目录的参数化文件
  3. 获取某个目录下所有的文件列表(含子目录文件,例如 TestNG生成的测试报告,或者 target/site 工程信息目录),将其拷贝至对应的web服务器目录,供相关人员查阅

以上前两种情况我们都需要获取对应目录下的参数化文件,第三种情况是前两种的进阶,那么我们如何获取对应目录下的文件列表呢?请看如下源码:

获取目录下的文件列表源码:

     // 目录文件列表
public static LinkedList<String> fileList = new LinkedList<String>(); /**
* <strong>获取文件夹中文件列表</strong><br>
* <br>
* <li>当目录非法或目录不存在时,返回null</li>
* <br>
* @author Aaron.ffp
* @version V1.0.0: autotest-base cn.ffp.autotest.base.util FileUtils.java getfList, 2016-03-15 23:51:06.049 Exp $
*
* @param dir 目录
* @param recursion 是否递归获取子目录文件列表(true,获取)
* @return 文件列表
*/
public static LinkedList<String> getfList(String dir, boolean recursion) {
if (!StringUtils.isBlank(dir)) {
File fDir = new File(dir); if (fDir.isFile() || !fDir.exists()) {
return null;
} File[] fList = fDir.listFiles(); for (int i = 0; i < fList.length; i++) {
if (fList[i].isFile()) {
fileList.add(fList[i].getPath());
} else {
if (recursion) {
getfList(fList[i].getPath(), recursion);
}
}
}
} else {
return null;
} return fileList;
} /**
* <strong>获取文件夹中文件列表</strong><br>
* <ul>
* <li>当目录非法或目录不存在时,返回null</li>
* </ul>
* <br>
* @author Aaron.ffp
* @version V1.0.0: autotest-base cn.ffp.autotest.base.util FileUtils.java getfList, 2016-03-24 23:10:27.594 Exp $
*
* @param dir 目录
* @return 文件列表
*/
public static LinkedList<String> getfList(String dir) {
LinkedList<String> fl = new LinkedList<String>(); if (!StringUtils.isBlank(dir)) {
File fDir = new File(dir); if (fDir.isFile() || !fDir.exists()) {
return null;
} File[] fList = fDir.listFiles(); for (int i = 0; i < fList.length; i++) {
if (fList[i].isFile()) {
fl.add(fList[i].getPath());
}
}
} else {
return null;
} return fl;
}

获取目录下的文件列表单元测试源码:

    @Test(description="public static LinkedList<String> FileUtils.getfList(String dir, boolean recursion) ---> 破坏性:null、空\n", groups="getfList")
public void test_getfList_invalid2() {
String dir = ConstantInfo.PROJECT_HOME;
dir = ""; fileList.clear(); LinkedList<String> fList = getfList(dir, true); Assert.assertTrue(fList == null);
} @Test(description="public static LinkedList<String> FileUtils.getfList(String dir, boolean recursion) ---> 破坏性:文件\n", groups="getfList")
public void test_getfList_invalid1() {
String dir = ConstantInfo.PROJECT_HOME;
dir = "D:\\DevTool\\workspace\\maven\\autotest-base\\.project"; fileList.clear(); LinkedList<String> fList = getfList(dir, true); Assert.assertTrue(fList == null);
} @Test(description="public static LinkedList<String> FileUtils.getfList(String dir, boolean recursion) ---> 通过性:合法目录(递归获取子目录文件列表)\n", groups="getfList")
public void test_getfList_valid2() {
String dir = ConstantInfo.PROJECT_HOME; fileList.clear(); LinkedList<String> fList = getfList(dir, true); if (fList == null) {
return;
} for (int i = 0; i < fList.size(); i++) {
logger.info(fList.get(i));
} logger.info("目录中文件总个数为: " + fList.size()); Assert.assertFalse(fList == null);
} @Test(description="public static LinkedList<String> FileUtils.getfList(String dir, boolean recursion) ---> 通过性:合法目录\n", groups="getfList")
public void test_getfList_valid1() {
String dir = ConstantInfo.PROJECT_HOME; fileList.clear(); LinkedList<String> fList = getfList(dir, false); if (fList == null) {
return;
} for (int i = 0; i < fList.size(); i++) {
logger.info(fList.get(i));
} logger.info("目录中文件总个数为: " + fList.size()); Assert.assertFalse(fList == null);
}

至此, Java学习-042-获取目录文件列表(当前,级联) 顺利完结,希望此文能够给初学 JavaWeb 的您一份参考。

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

Java学习-042-获取目录文件列表(当前,级联)的更多相关文章

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

    挺晚的了,直接上码.敬请各位小主参阅,若有不足之处,敬请指正,非常感谢! 目录文件拷贝源码: /** * <strong>目录拷贝</strong><br> * & ...

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

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

  3. atitit.提升备份文件复制速度(4) ---数据挖掘 获取回收站文件列表

    atitit.) ---数据挖掘 获取回收站文件列表 1. 放入回收站的原理and 1 2. info2文件文件结构 1 3. 获得文件列表2个法: 正则表达式or解析 1 4. 路径正则表达式[a- ...

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

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

  5. c#FTP操作类,包含上传,下载,删除,获取FTP文件列表文件夹等Hhelp类

    有些时间没发表文章了,之前用到过,这是我总结出来关于ftp相关操作一些方法,网上也有很多,但是没有那么全面,我的这些仅供参考和借鉴,希望能够帮助到大家,代码和相关引用我都复制粘贴出来了,希望大家喜欢 ...

  6. Java 快速入门-06-JDK 目录文件说明

    Java 快速入门-06-JDK 目录文件说明 JDK:开发环境,搞技术的人或者应用服务器使用 JRE:运行环境,如浏览器插件或者Swing界面的客户端等最终用户需要使用 JDK自含一个JRE,并依赖 ...

  7. C#FTP操作类含下载上传删除获取目录文件及子目录列表等等

    ftp登陆格式  : ftp://[帐号]:[密码]@[IP]:[端口] ftp://用户名:密码@FTP服务器IP或域名:FTP命令端口/路径/文件名 直接上代码吧,根据需要选择函数,可根据业务自己 ...

  8. java工具类获取properties文件的配置

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i ...

  9. dir listing 目录文件列表索引

    一般而言,网站应用都有一个入口,比如说:index.php,index.html,app.js等.通过这个路口,以及相应的路由功能,去到网站各个功能版块. 而网站的目录结构,目录里面的文件列表,一般都 ...

随机推荐

  1. BZOJ4451 : [Cerc2015]Frightful Formula

    $(i,1)$对答案的贡献为$l_iC(2n-i-2,n-i)a^{n-1}b^{n-i}$. $(1,i)$对答案的贡献为$t_iC(2n-i-2,n-i)*a^{n-i}b^{n-1}$. $(i ...

  2. Codeforces Round #353 (Div. 2) A. Infinite Sequence

    Vasya likes everything infinite. Now he is studying the properties of a sequence s, such that its fi ...

  3. UIView 的属性opaque详解

    该属性用法决定与该消息的接受者是否让其视图透明. 该属性的用处在于:给绘图系统提供一个性能优化开关. 当该值设计为YES,那么绘图系统会把它当作不透明看待,那么在执行绘图的时候会优化绘图一些操作,并且 ...

  4. ACM: HDU 1874 畅通工程续-Dijkstra算法

    HDU 1874 畅通工程续 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Desc ...

  5. 洛谷 P1462 通往奥格瑞玛的道路 Label: 最小化最大值 && spfa (存多条边示例)

    题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量 有一天他醒来后发现自己居然到了联盟的主城暴风城 在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛 题目描述 在艾泽拉斯, ...

  6. Install the Maven in your computer

    While, this blog will talk about installing the Maven in your computer. There are three steps as fol ...

  7. NodeJS学习笔记之Connect中间件模块(一)

    NodeJS学习笔记之Connect中间件模块(一) http://www.jb51.net/article/60430.htm NodeJS学习笔记之Connect中间件模块(二) http://w ...

  8. 常见MVC框架比较

    常见MVC框架比较 运行性能上: Jsp+servlet>struts1>spring mvc>struts2+freemarker>>struts2,ognl,值栈. ...

  9. vsphere平台为win系统动态扩展磁盘

    1.关闭win虚拟机 2.在vcenter管理中加大磁盘空间 3.开启win虚拟机(此时磁盘并没有加大) 4.打开cmd命令行: 进入分区管理--->查看磁盘--->选择磁盘---> ...

  10. awesome-scala

    https://github.com/lauris/awesome-scala Awesome Scala  A community driven list of useful Scala libra ...