Como _directly_ obter uma lista de arquivos de um subdiretório em um arquivo .JAR - JAVA

Estou procurando uma maneira dediretament obtém uma lista de todos os arquivos em um subdiretório especificado em um arquivo .ja

Isso é semelhante:Como listar os arquivos dentro de um arquivo JAR?

Mas infelizmente o método listado acima irá repetir todos os arquivos no arquivo .jar inteiro. Ao trabalhar com um .jar com muitos arquivos, isso parece impraticável, como é o meu caso. É preciso haver uma maneira de direcionar diretamente para um subdiretório dentro do .jar e iterar sobre seu conteúdo, sem precisar iterar todo o conteúdo do jar e filtrar os resultados para encontrar as entradas mais importantes para você.

Aqui está mais ou menos o que eu tenho:

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;
}

A variável: url ->: jar: file: / C: /jboss-4.2.2.GA/server/username/tmp/deploy/tmp8421264930467110704SomeEar.ear-contents/SomeBusiness.jar! / subdir1 / subdir2 / subdir3 / subdir4 /

O caminho: / subdir1 / subdir2 / subdir3 / subdir4 / é exatamente onde eu quero itera

Debugging revela que juc é de fato criado corretamente e apontando para o caminho correto. jarFile então, como esperado, apenas me fornece o caminho do arquivo jar; é por isso que perco os subdiretórios e por que começo a iterar na raiz. Tudo isso faz sentido. Essa claramente não é a maneira correta. Tem que haver outra maneira

Messendo com o JarURLConnection, que teoricamente aponta para o diretório correto no qual estou interessado, não revela nada de útil. Há sim JarURLConnection.getInputStream (). O depurador indica que, no final das contas, isso contém um ZipFileInputStream, mas não consigo acessar, e, olhando mais adiante, parece que é apenas o ZipFileInputStream ao ZipFile - o que me coloca de volta na estaca zer

questionAnswers(1)

yourAnswerToTheQuestion