@Override public String getFilenameExtension() { return archiver.getFilenameExtension() + compressor.getFilenameExtension(); }
@Override public String getFilenameExtension() { return archiver.getFilenameExtension() + compressor.getFilenameExtension(); }
@Override public File create(String archive, File destination, File... sources) throws IOException { IOUtils.requireDirectory(destination); File temp = File.createTempFile(destination.getName(), archiver.getFilenameExtension(), destination); File destinationArchive = null; try { temp = archiver.create(temp.getName(), temp.getParentFile(), sources); destinationArchive = new File(destination, getArchiveFileName(archive)); compressor.compress(temp, destinationArchive); } finally { temp.delete(); } return destinationArchive; }
@Override public File create(String archive, File destination, File... sources) throws IOException { IOUtils.requireDirectory(destination); File temp = File.createTempFile(destination.getName(), archiver.getFilenameExtension(), destination); File destinationArchive = null; try { temp = archiver.create(temp.getName(), temp.getParentFile(), sources); destinationArchive = new File(destination, getArchiveFileName(archive)); compressor.compress(temp, destinationArchive); } finally { temp.delete(); } return destinationArchive; }
/** * Returns a file name from the given archive name. The file extension suffix will be appended according to what is * already present. * <br> * E.g. if the compressor uses the file extension "gz", the archiver "tar", and passed argument is "archive.tar", * the returned value will be "archive.tar.gz". * * @param archive the existing archive file name * @return the normalized archive file name including the correct file name extension */ private String getArchiveFileName(String archive) { String fileExtension = getFilenameExtension(); if (archive.endsWith(fileExtension)) { return archive; } else if (archive.endsWith(archiver.getFilenameExtension())) { return archive + compressor.getFilenameExtension(); } else { return archive + fileExtension; } }
/** * Returns a file name from the given archive name. The file extension suffix will be appended according to what is * already present. * <br> * E.g. if the compressor uses the file extension "gz", the archiver "tar", and passed argument is "archive.tar", * the returned value will be "archive.tar.gz". * * @param archive the existing archive file name * @return the normalized archive file name including the correct file name extension */ private String getArchiveFileName(String archive) { String fileExtension = getFilenameExtension(); if (archive.endsWith(fileExtension)) { return archive; } else if (archive.endsWith(archiver.getFilenameExtension())) { return archive + compressor.getFilenameExtension(); } else { return archive + fileExtension; } }
@Override public File create(String archive, File destination, File... sources) throws IOException { IOUtils.requireDirectory(destination); File archiveFile = createNewArchiveFile(archive, getFilenameExtension(), destination); ArchiveOutputStream outputStream = null; try { outputStream = createArchiveOutputStream(archiveFile); writeToArchive(sources, outputStream); outputStream.flush(); } finally { IOUtils.closeQuietly(outputStream); } return archiveFile; }
@Override public File create(String archive, File destination, File... sources) throws IOException { IOUtils.requireDirectory(destination); File archiveFile = createNewArchiveFile(archive, getFilenameExtension(), destination); ArchiveOutputStream outputStream = null; try { outputStream = createArchiveOutputStream(archiveFile); writeToArchive(sources, outputStream); outputStream.flush(); } finally { IOUtils.closeQuietly(outputStream); } return archiveFile; }