" followed by a LF. After these 8 bytes
the archive entries are listed. The format of an entry header is as it follows:
START BYTE END BYTE NAME FORMAT LENGTH
0 15 File name ASCII 16
16 27 Modification timestamp Decimal 12
28 33 Owner ID Decimal 6
34 39 Group ID Decimal 6
40 47 File mode Octal 8
48 57 File size (bytes) Decimal 10
58 59 File magic \140\012 2
This specifies that an ar archive entry header contains 60 bytes.
Due to the limitation of the file name length to 16 bytes GNU and BSD has
their own variants of this format. This formats are currently not supported
and file names with a bigger size than 16 bytes are not possible at the
moment.
Field Summary |
private static int |
DEFAULT_MODE
|
private int |
groupId
|
static java.lang.String |
HEADER
The header for each entry |
private long |
lastModified
|
private long |
length
|
private int |
mode
|
private java.lang.String |
name
SVR4/GNU adds a trailing / to names; BSD does not. |
static java.lang.String |
TRAILER
The trailer for each entry |
private int |
userId
|
Constructor Summary |
ArArchiveEntry(java.io.File inputFile,
java.lang.String entryName)
Create a new instance using the attributes of the given file |
ArArchiveEntry(java.lang.String name,
long length)
Create a new instance using a couple of default values. |
ArArchiveEntry(java.lang.String name,
long length,
int userId,
int groupId,
int mode,
long lastModified)
Create a new instance. |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
HEADER
public static final java.lang.String HEADER
- The header for each entry
- See Also:
- Constant Field Values
TRAILER
public static final java.lang.String TRAILER
- The trailer for each entry
- See Also:
- Constant Field Values
name
private final java.lang.String name
- SVR4/GNU adds a trailing / to names; BSD does not.
They also vary in how names longer than 16 characters are represented.
(Not yet supported by this implementation)
userId
private final int userId
groupId
private final int groupId
mode
private final int mode
DEFAULT_MODE
private static final int DEFAULT_MODE
- See Also:
- Constant Field Values
lastModified
private final long lastModified
length
private final long length
ArArchiveEntry
public ArArchiveEntry(java.lang.String name,
long length)
- Create a new instance using a couple of default values.
Sets userId and groupId to 0, the octal file mode to 644 and
the last modified time to the current time.
- Parameters:
name
- name of the entrylength
- length of the entry in bytes
ArArchiveEntry
public ArArchiveEntry(java.lang.String name,
long length,
int userId,
int groupId,
int mode,
long lastModified)
- Create a new instance.
- Parameters:
name
- name of the entrylength
- length of the entry in bytesuserId
- numeric user idgroupId
- numeric group idmode
- file modelastModified
- last modified time in seconds since the epoch
ArArchiveEntry
public ArArchiveEntry(java.io.File inputFile,
java.lang.String entryName)
- Create a new instance using the attributes of the given file
getSize
public long getSize()
- The (uncompressed) size of the entry. May be -1 (SIZE_UNKNOWN) if the size is unknown
- Specified by:
getSize
in interface ArchiveEntry
getName
public java.lang.String getName()
- The name of the entry in the archive. May refer to a file or directory or other item
- Specified by:
getName
in interface ArchiveEntry
getUserId
public int getUserId()
getGroupId
public int getGroupId()
getMode
public int getMode()
getLastModified
public long getLastModified()
- Last modified time in seconds since the epoch.
getLastModifiedDate
public java.util.Date getLastModifiedDate()
- The last modified date of the entry.
- Specified by:
getLastModifiedDate
in interface ArchiveEntry
getLength
public long getLength()
isDirectory
public boolean isDirectory()
- True if the entry refers to a directory
- Specified by:
isDirectory
in interface ArchiveEntry
hashCode
public int hashCode()
-
- Overrides:
hashCode
in class java.lang.Object
equals
public boolean equals(java.lang.Object obj)
-
- Overrides:
equals
in class java.lang.Object