Как _directly_ получить список файлов из подкаталога в .JAR - JAVA

Я ищу способнепосредственно получить список всех файлов в указанном подкаталоге в .jar.

Это похоже:Как мне перечислить файлы в файле JAR?

Но, к сожалению, метод, перечисленный выше, будет перебирать все файлы во всем .jar. При работе с .jar со многими файлами в нем - это непрактично, как в моем случае. Должен быть способ прямого пути к подкаталогу в .jar и итерации по его содержимому, без необходимости итерировать по всему содержимому фляги, а затем фильтровать результаты, чтобы найти те записи, которые вас интересуют.

Вот примерно то, что у меня есть:

public static ArrayList<String> loadInternalFileListing(MetaDataType type, MetaDataLocation location, String siteId)
{
  ArrayList<String> filenameList = new ArrayList<String>();
  URL url = getInternalFile(type, null, location, siteId);

  JarURLConnection juc = null;
  JarFile jarFile = null;

  try
  {
    juc = (JarURLConnection) url.openConnection();
    jarFile = juc.getJarFile();
    Enumeration<JarEntry> entries = jarFile.entries();

    for(JarEntry jarEntry = entries.nextElement(); entries.hasMoreElements(); jarEntry = entries.nextElement())
    {
       ...//logic here
    }
  }
  ... //catch, handle exceptions, finally block and other logic

  return filenameList;
}

Переменная:URL ->: jar: file: / C: /jboss-4.2.2.GA/server/username/tmp/deploy/tmp8421264930467110704SomeEar.ear-contents/SomeBusiness.jar! / subdir1 / subdir2 / subdir3 / subdir4 /

Путь: / subdir1 / subdir2 / subdir3 / subdir4 / - это именно то место, где я хочу повторить.

Отладка показывает, чтоJuc действительно создан правильно и указывает на правильный путь.jarFile затем, как и ожидалось, просто дает мне путь к файлу jar, поэтому я теряю подкаталоги и почему я начинаю итерацию в корне. Это все имеет смысл. Это явно не правильный путь. Должен быть другой путь!

Возиться сJarURLConnection который теоретически указывает на правильный каталог, который меня интересует, не раскрывает ничего полезного. ЕстьJarURLConnection.getInputStream (), Отладчик указывает, что это в конечном итоге содержитZipFileInputStream, но я не могу получить к нему доступ, и, глядя дальше, похоже, это простоZipFileInputStream кZipFile - что возвращает меня на круги своя.

Ответы на вопрос(1)

Ваш ответ на вопрос