docs: public static void list(String zipFilename) throws IOException{
  
          if(logger.isDebugEnabled()) logger.debug("Listing Archive:  %s",zipFilename);
          //create the file system
          try (FileSystem zipFileSystem = createZipFileSystem(zipFilename, false)) {
  
              final Path root = zipFileSystem.getPath("/");
  
              //walk the file tree and print out the directory and filenames
              Files.walkFileTree(root, new SimpleFileVisitor<Path>(){
                  @Override
                  public FileVisitResult visitFile(Path file,
                                                   BasicFileAttributes attrs) throws IOException {
                      print(file);
                      return FileVisitResult.CONTINUE;
                  }
  
                  @Override
                  public FileVisitResult preVisitDirectory(Path dir,
                                                           BasicFileAttributes attrs) throws IOException {
                      print(dir);
                      return FileVisitResult.CONTINUE;
                  }
  
                  /**
                   * prints out details about the specified path
                   * such as size and modification time
                   * @param file
                   * @throws IOException
                   */
                  private void print(Path file) throws IOException{
                      final DateFormat df = new SimpleDateFormat("MM/dd/yyyy-HH:mm:ss");
                      final String modTime= df.format(new Date(
                              Files.getLastModifiedTime(file).toMillis()));
                      if(logger.isDebugEnabled()) {
                          logger.debug("%d  %s  %s",
                                  Files.size(file),
                                  modTime,
                                  file);
                      }
                  }
              });
          }
      }