code: @Override
      protected Collection<String> getChildren(final String relative) throws IOException {
  
          ZipFile zip = createZipFile();
          if (null == zip) {
              return Collections.emptyList();
          }
  
          Collection<String> children = new ArrayList<String>();
          Enumeration<? extends ZipEntry> entries = zip.entries();
          while (entries.hasMoreElements()) {
              ZipEntry entry = entries.nextElement();
              if (entry.isDirectory()) {
                  continue;
              }
              if ((relative.equals("")) || entry.getName().startsWith(relative + File.separator)) {
                  children.add(entry.getName());
              }
          }
  
          zip.close();
          return children;
      }
docs: Gets the entries under the specified directory in the zip file. This currently gets all entries
  in all sub directories too but does not return other directories as I think this will be more
  efficient than trying to recursively go through sub directories and we only call this method when
  we want all entries under the specified directory, including all sub directories.