需求:所有xml文件都放在某個目錄下,寫個方法讀取所有xml文件,然后傳給下面的某個方法調用
實現:先把所有的xml文件通過遞歸讀取出來 ,存放到List中,然后以文件名為Key,文件(文件路徑+文件名)為Value,存放到Map中,供后面程序調用
代碼如下:
import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class ListXmlFiles { /** * 獲取所有XML文件 * @param path 文件路徑 * @param fileList 存放所有XML文件的列表 */ public void getXmlFiles(String path, List<File> fileList) { File file = new File(path); File[] files = file.listFiles(); for (File fileIndex : files) { if (!fileIndex.exists()) { throw new NullPointerException("Cannot find " + fileIndex); } else if (fileIndex.isFile()) { fileList.add(fileIndex); } else { if (fileIndex.isDirectory()) { getXmlFiles(fileIndex.getAbsolutePath(), fileList); } } } } public static void main(String[] args) { //聲明一個HashMap,用於存放XML文件,格式:<文件名,文件>,以文件名為KEY,可以得到整個文件所在的路徑和文件名 Map<String, String> xmlMap = new HashMap<>(); ListXmlFiles lxf = new ListXmlFiles(); //存放xml文件的根目錄 String filePath = System.getProperty("user.dir") + "\\element"; //聲明一個List,用於存放所有得到的XML文件 List<File> fileList = new ArrayList<>(); lxf.getXmlFiles(filePath, fileList); for (File f : fileList) { System.out.println(f); //把每個文件存放到HashMap中 xmlMap.put(f.getName(),f.getAbsolutePath()); } System.out.println(xmlMap); } }
執行結果:
D:\UIAutoTest\UIdemo\element\a\a1.xml D:\UIAutoTest\UIdemo\element\a\a2.xml D:\UIAutoTest\UIdemo\element\b\b1.xml D:\UIAutoTest\UIdemo\element\b\bb\b2.xml D:\UIAutoTest\UIdemo\element\b\bb\bbb\b3.xml D:\UIAutoTest\UIdemo\element\b\bb\bbb\bbbb\b4.xml D:\UIAutoTest\UIdemo\element\b\bb\bbb\bbbb\b5.xml D:\UIAutoTest\UIdemo\element\b\bb\bbb\bbbb\bbbbb\LoginPage.xml D:\UIAutoTest\UIdemo\element\c.xml
{b5.xml=D:\UIAutoTest\UIdemo\element\b\bb\bbb\bbbb\b5.xml,
b4.xml=D:\UIAutoTest\UIdemo\element\b\bb\bbb\bbbb\b4.xml,
c.xml=D:\UIAutoTest\UIdemo\element\c.xml,
a1.xml=D:\UIAutoTest\UIdemo\element\a\a1.xml,
a2.xml=D:\UIAutoTest\UIdemo\element\a\a2.xml,
b3.xml=D:\UIAutoTest\UIdemo\element\b\bb\bbb\b3.xml,
LoginPage.xml=D:\UIAutoTest\UIdemo\element\b\bb\bbb\bbbb\bbbbb\LoginPage.xml,
b2.xml=D:\UIAutoTest\UIdemo\element\b\bb\b2.xml,
b1.xml=D:\UIAutoTest\UIdemo\element\b\b1.xml} Process finished with exit code 0
