需求:所有xml文件都放在某个目录下,写个方法读取所有xml文件,然后传给下面的某个方法调用

实现:先把所有的xml文件通过递归读取出来 ,存放到List中,然后以文件名为Key,文件(文件路径+文件名)为Value,存放到Map中,供后面程序调用

代码如下:

importjava.io.File;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;public classListXmlFiles {/*** 获取所有XML文件

*@parampath 文件路径

*@paramfileList 存放所有XML文件的列表*/

public void getXmlFiles(String path, ListfileList) {

File file= newFile(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 voidmain(String[] args) {//声明一个HashMap,用于存放XML文件,格式:,以文件名为KEY,可以得到整个文件所在的路径和文件名

Map xmlMap = new HashMap<>();

ListXmlFiles lxf= newListXmlFiles();//存放xml文件的根目录

String filePath = System.getProperty("user.dir") + "\\element";//声明一个List,用于存放所有得到的XML文件

List 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

点击阅读全文
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐