Java学习-042-获取目录文件列表(当前,级联)
以下三个场景,在我们日常的测试开发中经常遇到:
- 软件自动化测试,在进行参数测试时,我们通常将所有相似功能的参数文件统一放在一个目录中,在自动化程序启动的时候,获取资源参数文件夹中所有参数文件,然后解析实现参数化;
- 自动化测试脚本,每个测试用例类运行时,在 beforeClass(通常选这个) 或 beforeTest 前获取对应目录的参数化文件
- 获取某个目录下所有的文件列表(含子目录文件,例如 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-获取目录文件列表(当前,级联)的更多相关文章
- Java学习-045-目录中文件拷贝
挺晚的了,直接上码.敬请各位小主参阅,若有不足之处,敬请指正,非常感谢! 目录文件拷贝源码: /** * <strong>目录拷贝</strong><br> * & ...
- java学习一目了然——File类文件处理
java学习一目了然--File类文件处理 File类(java.io.File) 构造函数: File(String path) File(String parent,String child) F ...
- atitit.提升备份文件复制速度(4) ---数据挖掘 获取回收站文件列表
atitit.) ---数据挖掘 获取回收站文件列表 1. 放入回收站的原理and 1 2. info2文件文件结构 1 3. 获得文件列表2个法: 正则表达式or解析 1 4. 路径正则表达式[a- ...
- Java学习-021-Properties 获取配置项对应的值
在日常的脚本编写过程中,通常会获取配置文件中的配置项,以执行相应的业务逻辑. 小二上码...若有不足之处,敬请大神指正,不胜感激! 获取配置项值的源码如下所示: /** * Get value fro ...
- c#FTP操作类,包含上传,下载,删除,获取FTP文件列表文件夹等Hhelp类
有些时间没发表文章了,之前用到过,这是我总结出来关于ftp相关操作一些方法,网上也有很多,但是没有那么全面,我的这些仅供参考和借鉴,希望能够帮助到大家,代码和相关引用我都复制粘贴出来了,希望大家喜欢 ...
- Java 快速入门-06-JDK 目录文件说明
Java 快速入门-06-JDK 目录文件说明 JDK:开发环境,搞技术的人或者应用服务器使用 JRE:运行环境,如浏览器插件或者Swing界面的客户端等最终用户需要使用 JDK自含一个JRE,并依赖 ...
- C#FTP操作类含下载上传删除获取目录文件及子目录列表等等
ftp登陆格式 : ftp://[帐号]:[密码]@[IP]:[端口] ftp://用户名:密码@FTP服务器IP或域名:FTP命令端口/路径/文件名 直接上代码吧,根据需要选择函数,可根据业务自己 ...
- java工具类获取properties文件的配置
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i ...
- dir listing 目录文件列表索引
一般而言,网站应用都有一个入口,比如说:index.php,index.html,app.js等.通过这个路口,以及相应的路由功能,去到网站各个功能版块. 而网站的目录结构,目录里面的文件列表,一般都 ...
随机推荐
- oracle查看表实际物理空间使用大小
http://www.2cto.com/database/201107/95313.html 一种是分配给一个表的物理空间数量,而不管空间是否被使用.可以这样查询获得字节数:select segmen ...
- CF#335 Board Game
Board Game time limit per test 2.5 seconds memory limit per test 256 megabytes input standard input ...
- Hadoop核心组件
1.Hadoop生态系统 2.HDFS(Hadoop分布式文件系统) 源自于Google的GFS论文,发表于2003年10月,HDFS是GFS克隆版. 是Hadoop体系中数据存储管理的基础.它是一个 ...
- ACM: 敌兵布阵 解题报告 -线段树
敌兵布阵 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description Li ...
- ACM Minimum Inversion Number 解题报告 -线段树
C - Minimum Inversion Number Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d &a ...
- 史上最全的Win8快捷键大全
下列的 Win8 快捷键列表汇总均收集自网络,未全部实测,也有可能有Win7时代的热键混迹其中,不管怎样,如有错漏,欢迎大家指正! Win8 常用快捷键: Win键 可在开始屏幕主菜单及最后一个应用程 ...
- iOS 程序员 6 级考试(答案和解释)
iOS 程序员 6 级考试(答案和解释) 我是前言 1. 下面的代码分别输出什么? @implementation Son : Father- (id)init { self = [super i ...
- Color Processing 色彩处理
How to read and write pixel data Bitmap processing Image Stride Bayer Color Filter Pattern High-Qual ...
- ZK 使用Clients.response
参考: http://stackoverflow.com/questions/11416386/how-to-access-au-response-sent-from-server-side-at-c ...
- CSS3初学篇章_1
CSS 层叠样式表 不同的浏览器需要不同的前缀,虽然目前最新版本的浏览器的不需要,但为了向下兼容,前缀还是少不了. 前缀 浏览器 -webkit chrome和safari -moz fire ...