我们在日常的电脑使用中,经常需要在当前目录或当期目录及其子目录中查找文件,并获取相应的文件路径名。在我们的自动化测试中,也经常需要确认文件在目录中是否成功生成或已存在,因而我写了一个小方法来实现。
获取文件在目录中的路径方法源码如下所示:
1 /** 2 * <strong>在目录中查找文件</strong><br> 3 * <ul> 4 * <li>若存在文件则返回文件路径,若不存在则返回空</li> 5 * <li>若存在参数非法,则返回null</li> 6 * </ul> 7 * <br> 8 * @author Aaron.ffp 9 * @version V1.0.0: autotest-base cn.ffp.autotest.base.util FileUtils.java search, 2016-03-24 23:17:52.897 Exp $ 10 * 11 * @param dir 目录 12 * @param fName 文件名 13 * @param rec 是否级联目录查找 14 * 15 * @return 文件路径 16 */ 17 public static String search(String dir, String fName, boolean rec) { 18 String fp = ""; 19 20 if (StringUtils.isBlank(dir) || StringUtils.isBlank(fName)) { 21 msg = "参数非法:目录【" + dir + "】或文件名【" + fName + "】不可为空、null、Tab、回车等,请确认!"; 22 logger.error(msg); 23 24 return null; 25 } 26 27 LinkedList<String> fList = FileUtils.getfList(dir, rec); 28 29 if (fList.isEmpty()) { 30 return ""; 31 } 32 33 for (int i = 0; i < fList.size(); i++) { 34 if (fList.get(i).endsWith(fName)) { 35 fp = fList.get(i); 36 37 return fp; 38 } 39 } 40 41 return fp; 42 } 43
获取文件在目录中的路径单元测试源码如下所示:
1 @Test(description="public static String FileUtils.search(String dir, String fName, boolean rec) ---> 通过性:级联查找 ", dependsOnGroups="getfList") 2 public void test_search_rec() { 3 String dir = ConstantInfo.PROJECT_RESOURCES_TEST; 4 String fName = "readCsv.csv"; 5 String path = ConstantInfo.PROJECT_RESOURCES_TEST + "APICsvTest" + ConstantInfo.OS_FILE_SEPARATOR + "readCsv.csv"; 6 7 fileList.clear(); 8 9 Assert.assertEquals(FileUtils.search(dir, fName, true), path); 10 } 11 12 @Test(description="public static String FileUtils.search(String dir, String fName, boolean rec) ---> 破坏性:参数非法 ", dependsOnGroups="getfList") 13 public void test_search_argInvalid() { 14 String dir = ConstantInfo.PROJECT_RESOURCES_TEST; 15 String fName = ""; 16 17 fileList.clear(); 18 19 Assert.assertTrue(FileUtils.search(dir, fName, false) == null); 20 } 21 22 @Test(description="public static String FileUtils.search(String dir, String fName, boolean rec) ---> 通过性:非级联查找 ", dependsOnGroups="getfList") 23 public void test_search_notRec() { 24 String dir = ConstantInfo.PROJECT_RESOURCES_TEST; 25 String fName = "readCsv.csv"; 26 27 fileList.clear(); 28 29 Assert.assertEquals(FileUtils.search(dir, fName, false), ""); 30 }
至此, Java学习-043-获取文件在目录中的路径 顺利完结,希望此文能够给初学 JavaWeb 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^