java通過檔案路徑讀取該路徑下的所有檔案並將其放入list中
阿新 • • 發佈:2018-12-04
需求:所有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