public class AsiExtraField extends Objectimplements ZipExtraField , UnixStat , Cloneable
This class uses the ASi extra field in the format:
Value Size Description
----- ---- -----------
(Unix3) 0x756e Short tag for this extra block type
TSize Short total data size for this block
CRC Long CRC-32 of the remaining data
Mode Short file permissions
SizDev Long symlink'd size OR major/minor dev num
UID Short user ID
GID Short group ID
(var.) variable symbolic link filename
taken from appnote.iz (Info-ZIP note, 981119) found at ftp://ftp.uu.net/pub/archiving/zip/doc/
Short is two bytes and Long is four bytes in big endian byte and word order, device numbers are currently not supported.
DEFAULT_DIR_PERM, DEFAULT_FILE_PERM, DEFAULT_LINK_PERM, DIR_FLAG, FILE_FLAG, LINK_FLAG, PERM_MASK| Constructor and Description |
|---|
AsiExtraField()
Constructor for AsiExtraField.
|
| Modifier and Type | Method and Description |
|---|---|
Object |
clone()
|
byte[] |
getCentralDirectoryData()
Delegate to local file data.
|
ZipShort |
getCentralDirectoryLength()
Delegate to local file data.
|
int |
getGroupId()
Get the group id.
|
ZipShort |
getHeaderId()
The Header-ID.
|
String |
getLinkedFile()
Name of linked file
|
byte[] |
getLocalFileDataData()
The actual data to put into local file data - without Header-ID or length specifier.
|
ZipShort |
getLocalFileDataLength()
Length of the extra field in the local file data - without Header-ID or length specifier.
|
int |
getMode()
File mode of this file.
|
protected int |
getMode(int mode)
Get the file mode for given permissions with the correct file type.
|
int |
getUserId()
Get the user id.
|
boolean |
isDirectory()
Is this entry a directory?
|
boolean |
isLink()
Is this entry a symbolic link?
|
void |
parseFromCentralDirectoryData(byte[] buffer, int offset, int length)
Doesn't do anything special since this class always uses the same data in central directory and local file data.
|
void |
parseFromLocalFileData(byte[] data, int offset, int length)
Populate data from this array as if it was in local file data.
|
void |
setDirectory(boolean dirFlag)
Indicate whether this entry is a directory.
|
void |
setGroupId(int gid)
Set the group id.
|
void |
setLinkedFile(String
Indicate that this entry is a symbolic link to the given filename.
|
void |
setMode(int mode)
File mode of this file.
|
void |
setUserId(int uid)
Set the user id.
|
public ZipShortgetHeaderId()
getHeaderId in interface
ZipExtraField
public ZipShortgetLocalFileDataLength()
getLocalFileDataLength in interface
ZipExtraField
ZipShort for the length of the data of this extra field
public ZipShortgetCentralDirectoryLength()
getCentralDirectoryLength in interface
ZipExtraField
public byte[] getLocalFileDataData()
getLocalFileDataData in interface
ZipExtraField
public byte[] getCentralDirectoryData()
getCentralDirectoryData in interface
ZipExtraField
public void setUserId(int uid)
uid - the user id
public int getUserId()
public void setGroupId(int gid)
gid - the group id
public int getGroupId()
public void setLinkedFile(Stringname)
name - Name of the file this entry links to, empty String if it is not a symbolic link.
public StringgetLinkedFile()
public boolean isLink()
public void setMode(int mode)
mode - the file mode
public int getMode()
public void setDirectory(boolean dirFlag)
dirFlag - if true, this entry is a directory
public boolean isDirectory()
public void parseFromLocalFileData(byte[] data,
int offset,
int length)
throws ZipException
parseFromLocalFileData in interface
ZipExtraField
data - an array of bytes
offset - the start offset
length - the number of bytes in the array from offset
ZipException - on error
public void parseFromCentralDirectoryData(byte[] buffer,
int offset,
int length)
throws ZipException
parseFromCentralDirectoryData in interface
ZipExtraField
buffer - the buffer to read data from
offset - offset into buffer to read data
length - the length of data
ZipException - on error
protected int getMode(int mode)
mode - the mode
public Objectclone()