public abstract class ZipUtil
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private static byte[] |
DOS_TIME_MIN
Smallest date/time ZIP can handle.
|
Constructor and Description |
---|
ZipUtil() |
Modifier and Type | Method and Description |
---|---|
static long |
adjustToLong(int i)
Assumes a negative integer really is a positive integer that
has wrapped around and re-creates the original value.
|
(package private) static long |
bigToLong(java.math.BigInteger big)
Converts a BigInteger into a long, and blows up
(NumberFormatException) if the BigInteger is too big.
|
(package private) static boolean |
canHandleEntryData(ZipArchiveEntry entry)
Whether this library is able to read or write the given entry.
|
(package private) static void |
checkRequestedFeatures(ZipArchiveEntry ze)
Checks whether the entry requires features not (yet) supported
by the library and throws an exception if it does.
|
(package private) static byte[] |
copy(byte[] from)
Create a copy of the given array - or return null if the
argument is null.
|
(package private) static void |
copy(byte[] from,
byte[] to,
int offset) |
static long |
dosToJavaTime(long dosTime)
Converts DOS time to Java time (number of milliseconds since
epoch).
|
static java.util.Date |
fromDosTime(ZipLong zipDosTime)
Convert a DOS date/time field to a Date object.
|
private static java.lang.String |
getUnicodeStringIfOriginalMatches(AbstractUnicodeExtraField f,
byte[] orig)
If the stored CRC matches the one of the given name, return the
Unicode name of the given field.
|
(package private) static java.math.BigInteger |
longToBig(long l)
Converts a long into a BigInteger.
|
static byte[] |
reverse(byte[] array)
Reverses a byte[] array.
|
(package private) static void |
setNameAndCommentFromExtraFields(ZipArchiveEntry ze,
byte[] originalNameBytes,
byte[] commentBytes)
If the entry has Unicode*ExtraFields and the CRCs of the
names/comments match those of the extra fields, transfer the
known Unicode values from the extra field.
|
static int |
signedByteToUnsignedInt(byte b)
Converts a signed byte into an unsigned integer representation
(e.g., -1 becomes 255).
|
private static boolean |
supportsEncryptionOf(ZipArchiveEntry entry)
Whether this library supports the encryption used by the given
entry.
|
private static boolean |
supportsMethodOf(ZipArchiveEntry entry)
Whether this library supports the compression method used by
the given entry.
|
(package private) static void |
toDosTime(java.util.Calendar c,
long t,
byte[] buf,
int offset) |
static ZipLong |
toDosTime(java.util.Date time)
Convert a Date object to a DOS date/time field.
|
static byte[] |
toDosTime(long t)
Convert a Date object to a DOS date/time field.
|
static void |
toDosTime(long t,
byte[] buf,
int offset)
Convert a Date object to a DOS date/time field.
|
static byte |
unsignedIntToSignedByte(int i)
Converts an unsigned integer to a signed byte (e.g., 255 becomes -1).
|
private static final byte[] DOS_TIME_MIN
public static ZipLong toDosTime(java.util.Date time)
time
- the Date
to convertZipLong
public static byte[] toDosTime(long t)
Stolen from InfoZip's fileio.c
t
- number of milliseconds since the epochpublic static void toDosTime(long t, byte[] buf, int offset)
Stolen from InfoZip's fileio.c
t
- number of milliseconds since the epochbuf
- the output bufferoffset
- The offset within the output buffer of the first byte to be written.
must be non-negative and no larger than buf.length-4static void toDosTime(java.util.Calendar c, long t, byte[] buf, int offset)
public static long adjustToLong(int i)
i
- the value to treat as unsigned int.public static byte[] reverse(byte[] array)
array
- to reverse (mutated in-place, but also returned for
convenience).static long bigToLong(java.math.BigInteger big)
big
- BigInteger to convert.static java.math.BigInteger longToBig(long l)
Converts a long into a BigInteger. Negative numbers between -1 and -2^31 are treated as unsigned 32 bit (e.g., positive) integers. Negative numbers below -2^31 cause an IllegalArgumentException to be thrown.
l
- long to convert to BigInteger.public static int signedByteToUnsignedInt(byte b)
b
- byte to convert to intpublic static byte unsignedIntToSignedByte(int i)
i
- integer to convert to bytejava.lang.IllegalArgumentException
- if the provided integer is not inside the range [0,255].public static java.util.Date fromDosTime(ZipLong zipDosTime)
zipDosTime
- contains the stored DOS time.public static long dosToJavaTime(long dosTime)
dosTime
- time to convertstatic void setNameAndCommentFromExtraFields(ZipArchiveEntry ze, byte[] originalNameBytes, byte[] commentBytes)
private static java.lang.String getUnicodeStringIfOriginalMatches(AbstractUnicodeExtraField f, byte[] orig)
If the field is null or the CRCs don't match, return null instead.
static byte[] copy(byte[] from)
static void copy(byte[] from, byte[] to, int offset)
static boolean canHandleEntryData(ZipArchiveEntry entry)
private static boolean supportsEncryptionOf(ZipArchiveEntry entry)
private static boolean supportsMethodOf(ZipArchiveEntry entry)
static void checkRequestedFeatures(ZipArchiveEntry ze) throws UnsupportedZipFeatureException
UnsupportedZipFeatureException