org.apache.tools.zip
Class AsiExtraField
java.lang.Object
org.apache.tools.zip.AsiExtraField
- Cloneable, UnixStat, ZipExtraField
public class AsiExtraField
extends java.lang.Object
Adds Unix file permission and UID/GID fields as well as symbolic
link handling.
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.
AsiExtraField
public AsiExtraField()
Constructor for AsiExtraField.
getGroupId
public int getGroupId()
Get the group id.
getLinkedFile
public String getLinkedFile()
Name of linked file
- name of the file this entry links to if it is a
symbolic link, the empty string otherwise.
getLocalFileDataData
public byte[] getLocalFileDataData()
The actual data to put into local file data - without Header-ID
or length specifier.
- getLocalFileDataData in interface ZipExtraField
getLocalFileDataLength
public ZipShort getLocalFileDataLength()
Length of the extra field in the local file data - without
Header-ID or length specifier.
- getLocalFileDataLength in interface ZipExtraField
- a
ZipShort
for the length of the data of this extra field
getMode
public int getMode()
File mode of this file.
getMode
protected int getMode(int mode)
Get the file mode for given permissions with the correct file type.
getUserId
public int getUserId()
Get the user id.
isDirectory
public boolean isDirectory()
Is this entry a directory?
- true if this entry is a directory
isLink
public boolean isLink()
Is this entry a symbolic link?
- true if this is a symbolic link
parseFromLocalFileData
public void parseFromLocalFileData(byte[] data,
int offset,
int length)
throws ZipException
Populate data from this array as if it was in local file data.
- parseFromLocalFileData in interface ZipExtraField
data
- an array of bytesoffset
- the start offsetlength
- the number of bytes in the array from offset
setDirectory
public void setDirectory(boolean dirFlag)
Indicate whether this entry is a directory.
dirFlag
- if true, this entry is a directory
setGroupId
public void setGroupId(int gid)
Set the group id.
setLinkedFile
public void setLinkedFile(String name)
Indicate that this entry is a symbolic link to the given filename.
name
- Name of the file this entry links to, empty String
if it is not a symbolic link.
setMode
public void setMode(int mode)
File mode of this file.
setUserId
public void setUserId(int uid)
Set the user id.