List of usage examples for org.apache.commons.vfs.provider.zip ZipFileProvider ZipFileProvider
public ZipFileProvider()
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()); */ }