protected static void grabFilesAndDirs( String file, List<String> dirs, List<String> files )
        throws IOException
    {
        File zipFile = new File( file );
        if ( !zipFile.exists() )
        {
            Logger logger = new ConsoleLogger( Logger.LEVEL_INFO, "console" );
            logger.error( "JarArchive skipping non-existing file: " + zipFile.getAbsolutePath() );
        }
        else if ( zipFile.isDirectory() )
        {
            Logger logger = new ConsoleLogger( Logger.LEVEL_INFO, "console" );
            logger.info( "JarArchiver skipping indexJar " + zipFile + " because it is not a jar" );
        }
        else
        {
            org.apache.commons.compress.archivers.zip.ZipFile zf = null;
            try
            {
                zf = new org.apache.commons.compress.archivers.zip.ZipFile( file, "utf-8" );
                Enumeration<ZipArchiveEntry> entries = zf.getEntries();
                HashSet<String> dirSet = new HashSet<String>();
                while ( entries.hasMoreElements() )
                {
                    ZipArchiveEntry ze = entries.nextElement();
                    String name = ze.getName();
                    // avoid index for manifest-only jars.
                    if ( !name.equals( META_INF_NAME ) && !name.equals( META_INF_NAME + '/' ) && !name.equals(
                        INDEX_NAME ) && !name.equals( MANIFEST_NAME ) )
                    {
                        if ( ze.isDirectory() )
                        {
                            dirSet.add( name );
                        }
                        else if ( !name.contains( "/" ) )
                        {
                            files.add( name );
                        }
                        else
                        {
                            // a file, not in the root
                            // since the jar may be one without directory
                            // entries, add the parent dir of this file as
                            // well.
                            dirSet.add( name.substring( 0, name.lastIndexOf( "/" ) + 1 ) );
                        }
                    }
                }
                dirs.addAll( dirSet );
            }
            finally
            {
                if ( zf != null )
                {
                    zf.close();
                }
            }
        }
    }
protected static void grabFilesAndDirs( String file, List<String> dirs, List<String> files )
        throws IOException
    {
        File zipFile = new File( file );
        if ( !zipFile.exists() )
        {
            Logger logger = new ConsoleLogger( Logger.LEVEL_INFO, "console" );
            logger.error( "JarArchive skipping non-existing file: " + zipFile.getAbsolutePath() );
        }
        else if ( zipFile.isDirectory() )
        {
            Logger logger = new ConsoleLogger( Logger.LEVEL_INFO, "console" );
            logger.info( "JarArchiver skipping indexJar " + zipFile + " because it is not a jar" );
        }
        else
        {
            org.apache.commons.compress.archivers.zip.ZipFile zf = null;
            try
            {
                zf = new org.apache.commons.compress.archivers.zip.ZipFile( file, "utf-8" );
                Enumeration<ZipArchiveEntry> entries = zf.getEntries();
                HashSet<String> dirSet = new HashSet<String>();
                while ( entries.hasMoreElements() )
                {
                    ZipArchiveEntry ze = entries.nextElement();
                    String name = ze.getName();
                    
                    if ( !name.equals( META_INF_NAME ) && !name.equals( META_INF_NAME + '/' ) && !name.equals(
                        INDEX_NAME ) && !name.equals( MANIFEST_NAME ) )
                    {
                        if ( ze.isDirectory() )
                        {
                            dirSet.add( name );
                        }
                        else if ( !name.contains( "/" ) )
                        {
                            files.add( name );
                        }
                        else
                        {
                            
                            
                            
                            
                            dirSet.add( name.substring( 0, name.lastIndexOf( "/" ) + 1 ) );
                        }
                    }
                }
                dirs.addAll( dirSet );
            }
            finally
            {
                if ( zf != null )
                {
                    zf.close();
                }
            }
        }
    }
protected static void grabFilesAndDirs ( String file , List < String > dirs , List < String > files ) throws IOException { File zipFile = new File ( file ) ; if ( ! zipFile . exists ( ) ) { Logger logger = new ConsoleLogger ( Logger . LEVEL_INFO , "console" ) ; logger . error ( "JarArchive skipping non-existing file: " + zipFile . getAbsolutePath ( ) ) ; } else if ( zipFile . isDirectory ( ) ) { Logger logger = new ConsoleLogger ( Logger . LEVEL_INFO , "console" ) ; logger . info ( "JarArchiver skipping indexJar " + zipFile + " because it is not a jar" ) ; } else { org . apache . commons . compress . archivers . zip . ZipFile zf = null ; try { zf = new org . apache . commons . compress . archivers . zip . ZipFile ( file , "utf-8" ) ; Enumeration < ZipArchiveEntry > entries = zf . getEntries ( ) ; HashSet < String > dirSet = new HashSet < String > ( ) ; while ( entries . hasMoreElements ( ) ) { ZipArchiveEntry ze = entries . nextElement ( ) ; String name = ze . getName ( ) ; // avoid index for manifest-only jars. if ( ! name . equals ( META_INF_NAME ) && ! name . equals ( META_INF_NAME + ' ' ) && ! name . equals ( INDEX_NAME ) && ! name . equals ( MANIFEST_NAME ) ) { if ( ze . isDirectory ( ) ) { dirSet . add ( name ) ; } else if ( ! name . contains ( "/" ) ) { files . add ( name ) ; } else { // a file, not in the root // since the jar may be one without directory // entries, add the parent dir of this file as // well. dirSet . add ( name . substring ( 0 , name . lastIndexOf ( "/" ) + 1 ) ) ; } } } dirs . addAll ( dirSet ) ; } finally { if ( zf != null ) { zf . close ( ) ; } } } }
Grab lists of all root-level files and all directories
contained in the given archive.

@param file  .
@param files .
@param dirs  .
@throws java.io.IOException .
Grab lists of all root - level files and all directories contained in the given archive .