Example usage for org.apache.commons.vfs.provider.zip ZipFileProvider ZipFileProvider

List of usage examples for org.apache.commons.vfs.provider.zip ZipFileProvider ZipFileProvider

Introduction

In this page you can find the example usage for org.apache.commons.vfs.provider.zip ZipFileProvider ZipFileProvider.

Prototype

public ZipFileProvider() 

Source Link

Usage

From source file:com.threecrickets.sincerity.util.IoUtil.java

/**
 * Unpacks all files in an archive using Apache Commons VFS.
 * <p>/*from  ww  w. j  av  a 2s.c o  m*/
 * Supported formats: zip, tar.gz/tgz, tar.bz2.
 * 
 * @param archiveFile
 *        The archive file
 * @param destinationDir
 *        The destination directory
 * @param workDir
 *        The work directory
 * @throws IOException
 *         In case of an I/O error
 */
public static void unpack(File archiveFile, File destinationDir, File workDir) throws IOException {
    String scheme = null;
    String name = archiveFile.getName();
    DefaultFileSystemManager manager = new DefaultFileSystemManager();
    try {
        boolean untar = false;
        if (name.endsWith(".zip")) {
            scheme = "zip:";
            manager.addProvider("zip", new ZipFileProvider());
        } else if (name.endsWith(".tar.gz") || name.endsWith(".tgz")) {
            scheme = "gz:";
            untar = true;
            manager.addProvider("tar", new TarFileProvider());
            manager.addProvider("gz", new GzipFileProvider());
            manager.addProvider("tgz", new TgzFileProvider());
        } else if (name.endsWith(".tar.bz2")) {
            scheme = "bz2:";
            untar = true;
            manager.addProvider("tar", new TarFileProvider());
            manager.addProvider("bz2", new Bzip2FileProvider());
            manager.addProvider("tbz2", new Tbz2FileProvider());
        }

        if (scheme != null) {
            DefaultFileReplicator replicator = new DefaultFileReplicator(workDir);
            replicator.init();
            manager.setReplicator(replicator);
            manager.setTemporaryFileStore(replicator);
            DefaultLocalFileProvider fileProvider = new DefaultLocalFileProvider();
            manager.addProvider("file", fileProvider);
            manager.setDefaultProvider(fileProvider);
            manager.setFilesCache(new DefaultFilesCache());
            manager.init();

            String path = scheme + archiveFile.toURI();
            FileObject fileObject = manager.resolveFile(path);
            FileObject[] children = fileObject.getChildren();
            if (untar && children.length > 0) {
                FileObject tar = manager
                        .resolveFile(new File(workDir, children[0].getName().getBaseName()).toURI().toString());
                org.apache.commons.vfs.FileUtil.copyContent(children[0], tar);
                tar = manager.resolveFile("tar:" + tar.getName());
                children = tar.getChildren();
            }

            for (FileObject child : children)
                copyRecursive(manager, child, manager.resolveFile(destinationDir.toURI().toString()));
        }
    } finally {
        manager.close();
    }
}

From source file:com.adito.networkplaces.NetworkPlacePlugin.java

void initFileSystems() throws FileSystemException {
    VFSProviderManager mgr = VFSProviderManager.getInstance();

    // Intialise the additional commons vfs providers

    /*//from  w  ww .jav a 2  s  .c o  m
    ((StandardFileSystemManager)VFS.getManager()).addProvider("webdav", new WebdavFileProvider());
    */
    //

    //NOTE: This Code for Old Apache Commons VFS
    /*
    ((StandardFileSystemManager)VFS.getManager()).addProvider("jar", new JarFileProvider());
    ((StandardFileSystemManager)VFS.getManager()).addProvider("zip", new ZipFileProvider());
    ((StandardFileSystemManager)VFS.getManager()).addProvider("tar", new TarFileProvider());
    ((StandardFileSystemManager)VFS.getManager()).addProvider("tgz", new TgzFileProvider());
    ((StandardFileSystemManager)VFS.getManager()).addProvider("tbz2", new Tbz2FileProvider());
    ((StandardFileSystemManager)VFS.getManager()).addProvider("gz", new GzipFileProvider());
    ((StandardFileSystemManager)VFS.getManager()).addProvider("tmp", new TemporaryFileProvider());
    ((StandardFileSystemManager)VFS.getManager()).addProvider(new String[] { "bzip2", "bz2" }, new Bzip2FileProvider());
    */

    //NOTE: This Code for Apache Commons VFS
    StandardFileSystemManager sfsm = new StandardFileSystemManager();
    sfsm.addProvider("jar", new JarFileProvider());
    sfsm.addProvider("zip", new ZipFileProvider());
    sfsm.addProvider("tar", new TarFileProvider());
    sfsm.addProvider("tgz", new TgzFileProvider());
    sfsm.addProvider("tbz2", new Tbz2FileProvider());
    sfsm.addProvider("gz", new GzipFileProvider());
    sfsm.addProvider("tmp", new TemporaryFileProvider());
    sfsm.addProvider(new String[] { "bzip2", "bz2" }, new Bzip2FileProvider());
    sfsm.addProvider("sftp", new SftpFileProvider());
    sfsm.addProvider("cifs", new SmbFileProvider());
    sfsm.addProvider("webdav", new WebdavFileProvider());

    mgr.registerProvider(new FileProvider());
    mgr.registerProvider(new FTPProvider());
    mgr.registerProvider(new SFTPProvider());
    mgr.registerProvider(new CIFSProvider());
    mgr.registerProvider(new JarProvider());
    mgr.registerProvider(new ZipProvider());
    mgr.registerProvider(new WebDAVProvider());

    /*
    Don't seem to work as expected.
            
      mgr.registerProvider(new TarProvider());
    mgr.registerProvider(new WebDAVProvider());
    mgr.registerProvider(new TgzProvider());
    mgr.registerProvider(new Tbz2Provider());
    */
}