列出 JAR 檔案中的檔案
在 Java 中,listFiles() 方法可用於取得目錄中的檔案清單。但是,它不能直接應用於 JAR 檔案來檢索其內容。
要實現此目的,您可以利用Java 的CodeSource 類別:
CodeSource src = MyClass.class.getProtectionDomain().getCodeSource(); if (src != null) { URL jar = src.getLocation(); try (ZipInputStream zip = new ZipInputStream(jar.openStream())) { while (true) { ZipEntry e = zip.getNextEntry(); if (e == null) { break; } String name = e.getName(); if (name.startsWith("path/to/your/dir/")) { // Process the entries within the specified directory. } } } catch (IOException ex) { // Handle I/O exceptions. } } else { // Handle the case where no CodeSource is available. }
注意:
getNextEntry() 方法會擷取 JAR 檔案中的下一個項目,讓您可以迭代其內容。
Java 7增強功能:
在Java 7 及更高版本中,您可以使用FileSystems.newFileSystem() 方法直接從JAR 檔案建立FileSystem對象。這允許您使用 NIO 的目錄遍歷和過濾機制存取 JAR 檔案內容,從而更方便地處理 JAR 和「分解」目錄。以上是如何在 Java 中列出 JAR 檔案內的檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!