Package org.nuiton.util
Class ZipUtil
java.lang.Object
org.nuiton.util.ZipUtil
public class ZipUtil
extends java.lang.Object
Opérations sur des fichiers Zip. Compression et décompression avec ou
sans filtres, scan des fichiers créés ou écrasés lors de la décompression...
Created: 24 août 2006 10:13:35
- Author:
- Benjamin Poussin - poussin@codelutin.com
-
Field Summary
Fields Modifier and Type Field Description protected static java.io.FileFilterALL_FILE_FILTERAccept all file pattern. -
Constructor Summary
Constructors Constructor Description ZipUtil() -
Method Summary
Modifier and Type Method Description static voidcompress(java.io.File zipFile, java.io.File fileOrDirectory)If fileOrDirectory is directory Compress recursively all file in this directory, else if is just file compress one file.static voidcompress(java.io.File zipFile, java.io.File fileOrDirectory, java.io.FileFilter filter)If fileOrDirectory is directory Compress recursively all file in this directory, else if is just file compress one file.static voidcompress(java.io.File zipFile, java.io.File fileOrDirectory, java.io.FileFilter filter, boolean createMD5)If fileOrDirectory is directory Compress recursively all file in this directory, else if is just file compress one file.static voidcompressFiles(java.io.File zipFile, java.io.File root, java.util.Collection<java.io.File> includes)Compress 'includes' files in zipFile.static voidcompressFiles(java.io.File zipFile, java.io.File root, java.util.Collection<java.io.File> includes, boolean createMD5)Compress 'includes' files in zipFile.protected static java.lang.StringconvertToLocalEntryName(java.lang.String txt)static booleanisZipFile(java.io.File file)Tests if the given file is a zip file.static voidscan(java.io.File zipFile, java.io.File targetDir, java.util.List<java.lang.String> newFiles, java.util.List<java.lang.String> existingFiles, java.io.FileFilter excludeFilter, java.lang.String renameFrom, java.lang.String renameTo)Scan a zipFile, and fill two lists of relative paths corresponding of zip entries.static java.util.List<java.lang.String>[]scanAndExplodeZip(java.io.File source, java.io.File root, java.io.FileFilter excludeFilter)static java.lang.Stringuncompress(java.io.File file, java.io.File targetDir)Uncompress zipped file in targetDir.static java.lang.Stringuncompress(java.io.File file, java.io.File targetDir, java.util.List<java.lang.String> toTreate, java.lang.String renameFrom, java.lang.String renameTo)uncompress zipped file in targetDir.static java.lang.Stringuncompress(java.io.InputStream stream, java.io.File targetDir)Uncompress zipped stream in targetDir.static java.lang.StringuncompressAndRename(java.io.File file, java.io.File targetDir, java.lang.String renameFrom, java.lang.String renameTo)Uncompress zipped file in targetDir, and rename uncompressed file if necessary.static java.lang.StringuncompressAndRename(java.io.InputStream stream, java.io.File targetDir, java.lang.String renameFrom, java.lang.String renameTo)Uncompress zipped stream in targetDir, and rename uncompressed file if necessary.static voiduncompressFiltred(java.io.File file, java.io.File targetDir, java.lang.String... excludes)Unzip compressed archive and keep non excluded patterns.
-
Field Details
-
ALL_FILE_FILTER
protected static java.io.FileFilter ALL_FILE_FILTERAccept all file pattern.
-
-
Constructor Details
-
ZipUtil
public ZipUtil()
-
-
Method Details
-
uncompress
public static java.lang.String uncompress(java.io.File file, java.io.File targetDir) throws java.io.IOExceptionUncompress zipped file in targetDir.- Parameters:
file- the zip source filetargetDir- the destination directory- Returns:
- return last entry name
- Throws:
java.io.IOException- if any problem while uncompressing
-
uncompress
public static java.lang.String uncompress(java.io.InputStream stream, java.io.File targetDir) throws java.io.IOExceptionUncompress zipped stream in targetDir.- Parameters:
stream- the zip source stream, stream is closed before returntargetDir- the destination directory- Returns:
- return last entry name
- Throws:
java.io.IOException- if any problem while uncompressing- Since:
- 2.6.6
-
uncompressAndRename
public static java.lang.String uncompressAndRename(java.io.File file, java.io.File targetDir, java.lang.String renameFrom, java.lang.String renameTo) throws java.io.IOExceptionUncompress zipped file in targetDir, and rename uncompressed file if necessary. If renameFrom or renameTo is null no renaming is done file in zip use / to separate directory and not begin with / each directory ended with /- Parameters:
file- the zip source filetargetDir- the destination directoryrenameFrom- pattern to permit rename file before uncompress itrenameTo- new name for file if renameFrom is applicable to it you can use $1, $2, ... if you have '(' ')' in renameFrom- Returns:
- return last entry name
- Throws:
java.io.IOException- if any problem while uncompressing
-
uncompressAndRename
public static java.lang.String uncompressAndRename(java.io.InputStream stream, java.io.File targetDir, java.lang.String renameFrom, java.lang.String renameTo) throws java.io.IOExceptionUncompress zipped stream in targetDir, and rename uncompressed file if necessary. If renameFrom or renameTo is null no renaming is done file in zip use / to separate directory and not begin with / each directory ended with /- Parameters:
stream- the zip source stream, stream is closed before returntargetDir- the destination directoryrenameFrom- pattern to permit rename file before uncompress itrenameTo- new name for file if renameFrom is applicable to it you can use $1, $2, ... if you have '(' ')' in renameFrom- Returns:
- return last entry name
- Throws:
java.io.IOException- if any problem while uncompressing- Since:
- 2.6.6
-
compressFiles
public static void compressFiles(java.io.File zipFile, java.io.File root, java.util.Collection<java.io.File> includes) throws java.io.IOExceptionCompress 'includes' files in zipFile. If file in includes is directory only the directory is put in zipFile, not the file contained in directory- Parameters:
zipFile- the destination zip fileroot- for all file in includes that is in this directory, then we remove this directory in zip entry name (aka -C for tar), can be null;includes- the files to include in zip- Throws:
java.io.IOException- if any problem while compressing
-
compressFiles
public static void compressFiles(java.io.File zipFile, java.io.File root, java.util.Collection<java.io.File> includes, boolean createMD5) throws java.io.IOExceptionCompress 'includes' files in zipFile. If file in includes is directory only the directory is put in zipFile, not the file contained in directory- Parameters:
zipFile- the destination zip fileroot- for all file in includes that is in this directory, then we remove this directory in zip entry name (aka -C for tar), can be null;includes- the files to include in zipcreateMD5- also create a MD5 file (zip name + .md5). MD5 file is created after zip.- Throws:
java.io.IOException- if any problem while compressing
-
compress
public static void compress(java.io.File zipFile, java.io.File fileOrDirectory) throws java.io.IOExceptionIf fileOrDirectory is directory Compress recursively all file in this directory, else if is just file compress one file. Entry result name in zip start at fileOrDirectory. example: if we compress /etc/apache, entry will be apache/http.conf, ...- Parameters:
zipFile- the target zip filefileOrDirectory- the file or directory to compress- Throws:
java.io.IOException- if any problem while compressing
-
compress
public static void compress(java.io.File zipFile, java.io.File fileOrDirectory, java.io.FileFilter filter) throws java.io.IOExceptionIf fileOrDirectory is directory Compress recursively all file in this directory, else if is just file compress one file. Entry result name in zip start at fileOrDirectory. example: if we compress /etc/apache, entry will be apache/http.conf, ...- Parameters:
zipFile- the target zip filefileOrDirectory- the file or directory to compressfilter- used to accept file, if null, all file is accepted- Throws:
java.io.IOException- if any problem while compressing
-
compress
public static void compress(java.io.File zipFile, java.io.File fileOrDirectory, java.io.FileFilter filter, boolean createMD5) throws java.io.IOExceptionIf fileOrDirectory is directory Compress recursively all file in this directory, else if is just file compress one file. Entry result name in zip start at fileOrDirectory. example: if we compress /etc/apache, entry will be apache/http.conf, ...- Parameters:
zipFile- the target zip filefileOrDirectory- the file or directory to compressfilter- used to accept file, if null, all file is acceptedcreateMD5- also create a MD5 file (zip name + .md5). MD5 file is created after zip.- Throws:
java.io.IOException- if any problem while compressing
-
scan
public static void scan(java.io.File zipFile, java.io.File targetDir, java.util.List<java.lang.String> newFiles, java.util.List<java.lang.String> existingFiles, java.io.FileFilter excludeFilter, java.lang.String renameFrom, java.lang.String renameTo) throws java.io.IOExceptionScan a zipFile, and fill two lists of relative paths corresponding of zip entries. First list contains all entries to be added while a uncompress operation on the destination directorytargetDir. Second list contains all entries to be overwritten while a uncompress operation on the destination directorytargetDir. IftargetDirisnullwe don't fillexistingFileslist.- Parameters:
zipFile- location of the zip to scanZiptargetDir- location of destination for a uncompress operation. Ifnullwe don't test to find overwritten files.newFiles- list of files to be added while a uncompressexistingFiles- list of files to be overwritten while a uncompress if thetargetDir, (only use iftargetDiris notnull)excludeFilter- used to exclude some filesrenameFrom-uncompressAndRename(File, File, String, String)renameTo-uncompressAndRename(File, File, String, String)- Throws:
java.io.IOException- if any exception while dealing with zipfile
-
scanAndExplodeZip
public static java.util.List<java.lang.String>[] scanAndExplodeZip(java.io.File source, java.io.File root, java.io.FileFilter excludeFilter) throws java.io.IOException- Throws:
java.io.IOException
-
uncompress
public static java.lang.String uncompress(java.io.File file, java.io.File targetDir, java.util.List<java.lang.String> toTreate, java.lang.String renameFrom, java.lang.String renameTo) throws java.io.IOExceptionuncompress zipped file in targetDir. IftoTreateif not null nor empty, we use it to filter entries to uncompress : it contains a list of relative local path of files to uncompress. Otherwise just delegate touncompress(File, File).- Parameters:
file- location of zip filetargetDir- destination directorytoTreate- list of relative local path of entries to treaterenameFrom-uncompressAndRename(File, File, String, String)renameTo-uncompressAndRename(File, File, String, String)- Returns:
- return last entry name
- Throws:
java.io.IOException- if nay exception while operation
-
uncompressFiltred
public static void uncompressFiltred(java.io.File file, java.io.File targetDir, java.lang.String... excludes) throws java.io.IOExceptionUnzip compressed archive and keep non excluded patterns.- Parameters:
file- archive filetargetDir- destination fileexcludes- excludes pattern (pattern must match complete entry name including root folder)- Throws:
java.io.IOException- FIXME
-
isZipFile
public static boolean isZipFile(java.io.File file)Tests if the given file is a zip file.- Parameters:
file- the file to test- Returns:
trueif the file is a valid zip file,falseotherwise.- Since:
- 2.4.9
-
convertToLocalEntryName
protected static java.lang.String convertToLocalEntryName(java.lang.String txt)
-