public void unpack(File file) throws IOException { //if the file is an archive, unpack it VFSWorker vfs = new VFSWorker(); if (vfs.canHandle(file)) { LOGGER.fine("unpacking " + file.getAbsolutePath() + " to " + this.file.getAbsolutePath()); vfs.extractTo(file, this.file); LOGGER.fine("deleting " + file.getAbsolutePath()); if (!file.delete()) { throw new IOException("unable to delete file"); } } }
private String resolveArchiveURI(final File archiveFile) { String archivePrefix = getaArchiveURLProtocol(archiveFile); String absolutePath = archivePrefix + archiveFile.getAbsolutePath(); return absolutePath; }
try { fsManager = VFS.getManager(); String absolutePath = resolveArchiveURI(archiveFile); FileObject resolvedFile = fsManager.resolveFile(absolutePath);
try { fsManager = VFS.getManager(); String absolutePath = resolveArchiveURI(archiveFile); FileObject resolvedFile = fsManager.resolveFile(absolutePath);
public void unpack(File file) throws IOException { // if the file is an archive, unpack it VFSWorker vfs = new VFSWorker(); if (vfs.canHandle(file)) { LOGGER.fine( "unpacking " + file.getAbsolutePath() + " to " + this.file.getAbsolutePath()); vfs.extractTo(file, this.file); LOGGER.fine("deleting " + file.getAbsolutePath()); if (!file.delete()) { throw new IOException("unable to delete file"); } } }
/** * Extracts the archive file {@code archiveFile} to {@code targetFolder}; both shall previously * exist. */ public void extractTo(File archiveFile, File targetFolder) throws IOException { FileSystemManager manager = VFS.getManager(); String sourceURI = resolveArchiveURI(archiveFile); // String targetURI = resolveArchiveURI(targetFolder); FileObject source = manager.resolveFile(sourceURI); if (manager.canCreateFileSystem(source)) { source = manager.createFileSystem(source); } FileObject target = manager.createVirtualFileSystem(manager.resolveFile(targetFolder .getAbsolutePath())); FileSelector selector = new AllFileSelector() { @Override public boolean includeFile(FileSelectInfo fileInfo) { LOGGER.fine("Uncompressing " + fileInfo.getFile().getName().getFriendlyURI()); return true; } }; target.copyFrom(source, selector); source.close(); manager.closeFileSystem(source.getFileSystem()); }
private String resolveArchiveURI(final File archiveFile) { String archivePrefix = getaArchiveURLProtocol(archiveFile); String absolutePath = archivePrefix + archiveFile.getAbsolutePath(); return absolutePath; }
public static Directory createFromArchive(File archive) throws IOException { VFSWorker vfs = new VFSWorker(); if (!vfs.canHandle(archive)) { throw new IOException(archive.getPath() + " is not a recognizable format"); } String basename = FilenameUtils.getBaseName(archive.getName()); File dir = new File(archive.getParentFile(), basename); int i = 0; while (dir.exists()) { dir = new File(archive.getParentFile(), basename + i++); } vfs.extractTo(archive, dir); return new Directory(dir); }
/** * Extracts the archive file {@code archiveFile} to {@code targetFolder}; both shall previously * exist. */ public void extractTo(File archiveFile, File targetFolder) throws IOException { FileSystemManager manager = VFS.getManager(); String sourceURI = resolveArchiveURI(archiveFile); // String targetURI = resolveArchiveURI(targetFolder); FileObject source = manager.resolveFile(sourceURI); if (manager.canCreateFileSystem(source)) { source = manager.createFileSystem(source); } FileObject target = manager.createVirtualFileSystem( manager.resolveFile(targetFolder.getAbsolutePath())); FileSelector selector = new AllFileSelector() { @Override public boolean includeFile(FileSelectInfo fileInfo) { LOGGER.fine( "Uncompressing " + fileInfo.getFile().getName().getFriendlyURI()); return true; } }; target.copyFrom(source, selector); source.close(); target.close(); manager.closeFileSystem(source.getFileSystem()); }
public static Directory createFromArchive(File archive) throws IOException { VFSWorker vfs = new VFSWorker(); if (!vfs.canHandle(archive)) { throw new IOException(archive.getPath() + " is not a recognizable format"); } String basename = FilenameUtils.getBaseName(archive.getName()); File dir = new File(archive.getParentFile(), basename); int i = 0; while (dir.exists()) { dir = new File(archive.getParentFile(), basename + i++); } vfs.extractTo(archive, dir); return new Directory(dir); }