ArchiveEntry
Inheritance: java.lang.Object
All Implemented Interfaces: com.aspose.zip.IArchiveFileEntry
public abstract class ArchiveEntry implements IArchiveFileEntry
Represents single file within archive.
Cast an ArchiveEntry instance to ArchiveEntryEncrypted to determine whether the entry encrypted or not.
Methods
| Method | Description |
|---|---|
| extract(OutputStream destination) | Extracts the entry to the stream provided. |
| extract(OutputStream destination, String password) | Extracts the entry to the stream provided. |
| extract(String path) | Extracts the entry to the filesystem by the path provided. |
| extract(String path, String password) | Extracts the entry to the filesystem by the path provided. |
| getComment() | Gets comment of the entry within archive. |
| getCompressedSize() | Gets size of the compressed file. |
| getCompressionProgressed() | Gets an event that is raised when a portion of raw stream compressed. |
| getCompressionSettings() | Gets settings for compression or decompression. |
| getDataSource() | Source for the entry if the entry was added to the archive, not extracted. |
| getExtractionProgressed() | Gets an event that is raised when a portion of raw stream extracted. |
| getLength() | Gets length. |
| getModificationTime() | Gets last modified date and time. |
| getName() | Gets name of the entry within the archive. |
| getUncompressedSize() | Gets size of the original file. |
| isDirectory() | Gets a value indicating whether the entry represents a directory. |
| open() | Opens the entry for extraction and provides a stream with decompressed entry content. |
| open(String password) | Opens the entry for extraction and provides a stream with decompressed entry content. |
| setCompressionProgressed(Event<ProgressEventArgs> value) | Sets an event that is raised when a portion of raw stream compressed. |
| setExtractionProgressed(Event<ProgressCancelEventArgs> value) | Sets an event that is raised when a portion of raw stream extracted. |
| setModificationTime(Date value) | Sets last modified date and time. |
extract(OutputStream destination)
public final void extract(OutputStream destination)
Extracts the entry to the stream provided.
Extract an entry of zip archive with password.
try (FileInputStream zipFile = new FileInputStream("archive.zip")) {
try (Archive archive = new Archive(zipFile)) {
archive.getEntries().get(0).extract(outputStream, "p@s$");
}
} catch (IOException ex) {
}
**Parameters:**
| Parameter | Type | Description |
| --- | --- | --- |
| destination | java.io.OutputStream | Destination stream. Must be writable. |
### extract(OutputStream destination, String password) {#extract-java.io.OutputStream-java.lang.String-}
public final void extract(OutputStream destination, String password)
Extracts the entry to the stream provided.
Extract an entry of zip archive with password.
try (FileInputStream zipFile = new FileInputStream("archive.zip")) {
try (Archive archive = new Archive(zipFile)) {
archive.getEntries().get(0).extract(outputStream, "p@s$");
}
} catch (IOException ex) {
}
```
**Parameters:**
| Parameter | Type | Description |
| --- | --- | --- |
| destination | java.io.OutputStream | Destination stream. Must be writable. |
| password | java.lang.String | Optional password for decryption. |
### extract(String path) {#extract-java.lang.String-}
```
public final File extract(String path)
```
Extracts the entry to the filesystem by the path provided.
Extract two entries of ZIP archive, each with own password
```
try (FileInputStream zipFile = new FileInputStream("archive.zip")) {
try (Archive archive = new Archive(zipFile)) {
archive.getEntries().get(0).extract("first.bin", "first_pass");
archive.getEntries().get(1).extract("second.bin", "second_pass");
}
} catch (IOException ex) {
}
**Parameters:**
| Parameter | Type | Description |
| --- | --- | --- |
| path | java.lang.String | The path to destination file. If the file already exists, it will be overwritten. |
**Returns:**
java.io.File - the file info of the extracted file
### extract(String path, String password) {#extract-java.lang.String-java.lang.String-}
public final File extract(String path, String password)
Extracts the entry to the filesystem by the path provided.
Extract two entries of ZIP archive, each with own password
try (FileInputStream zipFile = new FileInputStream("archive.zip")) {
try (Archive archive = new Archive(zipFile)) {
archive.getEntries().get(0).extract("first.bin", "first_pass");
archive.getEntries().get(1).extract("second.bin", "second_pass");
}
} catch (IOException ex) {
}
```
**Parameters:**
| Parameter | Type | Description |
| --- | --- | --- |
| path | java.lang.String | The path to destination file. If the file already exists, it will be overwritten. |
| password | java.lang.String | Optional password for decryption. |
**Returns:**
java.io.File - the file info of the extracted file
### getComment() {#getComment--}
```
public final String getComment()
```
Gets comment of the entry within archive.
**Returns:**
java.lang.String - comment of the entry within archive
### getCompressedSize() {#getCompressedSize--}
```
public final long getCompressedSize()
```
Gets size of the compressed file.
**Returns:**
long - size of the compressed file
### getCompressionProgressed() {#getCompressionProgressed--}
```
public final Event<ProgressEventArgs> getCompressionProgressed()
```
Gets an event that is raised when a portion of raw stream compressed.
```
archive.getEntries().get(0).setCompressionProgressed(new Event<ProgressEventArgs>() {
public void invoke(Object sender, ProgressEventArgs progressEventArgs) {
int percent = (int) ((100 * (long) progressEventArgs.getProceededBytes()) / entrySourceFile.length());
}
});
Event sender is an [ArchiveEntry](../../com.aspose.zip/archiveentry) instance.
**Returns:**
[Event](../../com.aspose.zip/event) - an event that is raised when a portion of raw stream compressed
### getCompressionSettings() {#getCompressionSettings--}
public final CompressionSettings getCompressionSettings()
Gets settings for compression or decompression.
**Returns:**
[CompressionSettings](../../com.aspose.zip/compressionsettings) - settings for compression or decompression.
### getDataSource() {#getDataSource--}
public final InputStream getDataSource()
Source for the entry if the entry was added to the archive, not extracted.
Before assigned, the source is null. This source may be assigned within `Archive.save` method in some cases.
**Returns:**
java.io.InputStream - the source for the entry
### getExtractionProgressed() {#getExtractionProgressed--}
public final Event
Gets an event that is raised when a portion of raw stream extracted.
In this sample event handler is used for calculation the share of proceeded size in percents.
archive.getEntries().get(0).setExtractionProgressed(new Event<ProgressEventArgs>() {
public void invoke(Object sender, ProgressEventArgs progressEventArgs) {
int percent = (int) ((100 * (long) progressEventArgs.getProceededBytes()) / ((ArchiveEntry) sender).getUncompressedSize());
}
});
```
In this sample event handler is used for cancellation after the first hundred of Mb of entry was extracted.
```
a.getEntries().get(0).setExtractionProgressed( (s, e) -> { if (e.getProceededBytes() > 100000000) e.setCancel(true); } );
Event sender is an [ArchiveEntry](../../com.aspose.zip/archiveentry) instance. It is possible to cancel extraction.
**Returns:**
[Event](../../com.aspose.zip/event) - an event that is raised when a portion of raw stream extracted.
### getLength() {#getLength--}
public final Long getLength()
Gets length.
**Returns:**
java.lang.Long - length
### getModificationTime() {#getModificationTime--}
public final Date getModificationTime()
Gets last modified date and time.
**Returns:**
java.util.Date - last modified date and time
### getName() {#getName--}
public final String getName()
Gets name of the entry within the archive.
**Returns:**
java.lang.String - name of the entry within the archive
### getUncompressedSize() {#getUncompressedSize--}
public final long getUncompressedSize()
Gets size of the original file.
**Returns:**
long - size of the original file
### isDirectory() {#isDirectory--}
public final boolean isDirectory()
Gets a value indicating whether the entry represents a directory.
**Returns:**
boolean - a value indicating whether the entry represents a directory.
### open() {#open--}
public final InputStream open()
Opens the entry for extraction and provides a stream with decompressed entry content.
Usage:
InputStream decompressed = entry.open();
byte[] buffer = new byte[8192];
int bytesRead;
while (0 < (bytesRead = decompressed.read(buffer, 0, buffer.length)))
fileStream.write(buffer, 0, bytesRead);
```
Read from the stream to get the original content of the file.
**Returns:**
java.io.InputStream - The stream that represents the contents of the entry.
### open(String password) {#open-java.lang.String-}
```
public final InputStream open(String password)
```
Opens the entry for extraction and provides a stream with decompressed entry content.
Usage:
```
InputStream decompressed = entry.open();
byte[] buffer = new byte[8192];
int bytesRead;
while (0 < (bytesRead = decompressed.read(buffer, 0, buffer.length)))
fileStream.write(buffer, 0, bytesRead);
Read from the stream to get the original content of the file. See examples section.
**Parameters:**
| Parameter | Type | Description |
| --- | --- | --- |
| password | java.lang.String | Optional password for decryption. |
**Returns:**
java.io.InputStream - The stream that represents the contents of the entry.
### setCompressionProgressed(Event<ProgressEventArgs> value) {#setCompressionProgressed-com.aspose.zip.Event-com.aspose.zip.ProgressEventArgs--}
public final void setCompressionProgressed(Event
Sets an event that is raised when a portion of raw stream compressed.
archive.getEntries().get(0).setCompressionProgressed(new Event<ProgressEventArgs>() {
public void invoke(Object sender, ProgressEventArgs progressEventArgs) {
int percent = (int) ((100 * (long) progressEventArgs.getProceededBytes()) / entrySourceFile.length());
}
});
```
Event sender is an [ArchiveEntry](../../com.aspose.zip/archiveentry) instance.
**Parameters:**
| Parameter | Type | Description |
| --- | --- | --- |
| value | com.aspose.zip.Event<com.aspose.zip.ProgressEventArgs> | an event that is raised when a portion of raw stream compressed |
### setExtractionProgressed(Event<ProgressCancelEventArgs> value) {#setExtractionProgressed-com.aspose.zip.Event-com.aspose.zip.ProgressCancelEventArgs--}
```
public final void setExtractionProgressed(Event<ProgressCancelEventArgs> value)
```
Sets an event that is raised when a portion of raw stream extracted.
In this sample event handler is used for calculation the share of proceeded size in percents.
```
archive.getEntries().get(0).setExtractionProgressed(new Event<ProgressEventArgs>() {
public void invoke(Object sender, ProgressEventArgs progressEventArgs) {
int percent = (int) ((100 * (long) progressEventArgs.getProceededBytes()) / ((ArchiveEntry) sender).getUncompressedSize());
}
});
In this sample event handler is used for cancellation after the first hundred of Mb of entry was extracted.
a.getEntries().get(0).setExtractionProgressed( (s, e) -> { if (e.getProceededBytes() > 100000000) e.setCancel(true); } );
```
Event sender is an [ArchiveEntry](../../com.aspose.zip/archiveentry) instance. It is possible to cancel extraction.
**Parameters:**
| Parameter | Type | Description |
| --- | --- | --- |
| value | com.aspose.zip.Event<com.aspose.zip.ProgressCancelEventArgs> | an event that is raised when a portion of raw stream extracted. |
### setModificationTime(Date value) {#setModificationTime-java.util.Date-}
```
public final void setModificationTime(Date value)
```
Sets last modified date and time.
**Parameters:**
| Parameter | Type | Description |
| --- | --- | --- |
| value | java.util.Date | last modified date and time |