|
IP*Works! ZIP V8 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object | +--ipworkszip.Bzip2
The Bzip2 bean implements a bzip2 compressor and decompressor. It is compliant with the bzip2 specification.
The bzip2 file format is typically used only to archive a single file. Accordingly, the operation of the bean is simpler than that of the other beans.
To compress with the bean, set ArchiveFile to the name
of the bzip2 file to be created, and FileDecompressedName to the
name of the file to be compressed. Finally, invoke Compress . To extract the file,
set ArchiveFile to the bzip2 archive and FileDecompressedName to the file where the
bean should extract. Finally, invoke the Extract or Compress method.
Example (Creating a Bzip2 File)
ZipControl.ArchiveFile = "c:\\test.bz2"
ZipControl.FileDecompressedName = "c:\\test.txt"
ZipControl.Compress() Example (Extracting from a Bzip2 File)
ZipControl.ArchiveFile = "c:\\test.bz2"
ZipControl.FileDecompressedName = "c:\\test.txt"
ZipControl.Extract()
The Bzip2 bean includes software developed by the Apache Software Foundation (http://www.apache.org/).
| Constructor Summary | |
Bzip2()
|
|
| Method Summary | |
void |
abort()
Aborts the current operation. |
void |
addBzip2EventListener(ipworkszip.Bzip2EventListener l)
|
void |
append()
Adds specified file to an existing archive. |
void |
compress()
Creates the compressed bzip2 archive. |
java.lang.String |
config(java.lang.String configurationString)
Sets or retrieves a configuration setting. |
void |
extract()
Extracts the compressed file from the bzip2 archive. |
void |
extractAll()
Extracts all files from the compressed archive. |
java.lang.String |
getArchiveFile()
The name of the zip, gzip, tar, or jar archive. |
java.lang.String |
getExtractToPath()
A base path to decompress to. |
java.lang.String |
getFileDecompressedName()
File name to decompress to, or compress from. |
boolean |
isHasMoreData()
Shows whether or not there is more data in the bzip2 archive. |
void |
removeBzip2EventListener(ipworkszip.Bzip2EventListener l)
|
void |
scan(javax.servlet.http.HttpServletRequest request)
Scans the compressed archive. |
void |
setArchiveFile(java.lang.String archiveFile)
The name of the zip, gzip, tar, or jar archive. |
void |
setArchiveInputStream(java.io.InputStream archiveStream)
The stream to read the zip, tar, jar, or gzip archive from. |
void |
setArchiveOutputStream(java.io.OutputStream archiveStream)
The stream to write the zip, tar, jar, or gzip archive to. |
void |
setExtractToPath(java.lang.String extractToPath)
A base path to decompress to. |
void |
setFileDecompressedName(java.lang.String fileDecompressedName)
File name to decompress to, or compress from. |
void |
setFileInputStream(java.io.InputStream archiveStream)
The input stream to read the decompressed data from. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public Bzip2()
| Method Detail |
public java.lang.String getArchiveFile()
This property specifies the name of the archive to be read or written. This property is required when extracting files.
When Scan , Extract , or ExtractAll is invoked, the file specified by ArchiveFile will be opened for read. If the file does not exist, a trappable
error will be generated.
When Compress is called, the file named by ArchiveFile will be written; if
a file of this name already exists the Overwrite event will be fired. If ArchiveFile is set to the empty string (""), the archive will not be
written to disk, and will be provided only through the Progress event.
The filename may be specified with or without a path. Paths may be relative or absolute, and should be specified in the format native to the host operating system. The filename should be specified with the appropriate extension (such as "zip"); an extension will not automatically be appended by the bean.
If the file cannot be read, or written, as appropriate, a trappable error will be generated.
Example (Creating an Archive)
ZipControl.ArchiveFile = "c:\\test.zip"
ZipControl.RecurseSubdirectories = true
ZipControl.IncludeFiles("c:\\foo\\*")
ZipControl.Compress()
Note: an archive already open for read may be closed by setting ArchiveFile to the empty string ("").
public void setArchiveFile(java.lang.String archiveFile)
throws IPWorksZipException
This property specifies the name of the archive to be read or written. This property is required when extracting files.
When Scan , Extract , or ExtractAll is invoked, the file specified by ArchiveFile will be opened for read. If the file does not exist, a trappable
error will be generated.
When Compress is called, the file named by ArchiveFile will be written; if
a file of this name already exists the Overwrite event will be fired. If ArchiveFile is set to the empty string (""), the archive will not be
written to disk, and will be provided only through the Progress event.
The filename may be specified with or without a path. Paths may be relative or absolute, and should be specified in the format native to the host operating system. The filename should be specified with the appropriate extension (such as "zip"); an extension will not automatically be appended by the bean.
If the file cannot be read, or written, as appropriate, a trappable error will be generated.
Example (Creating an Archive)
ZipControl.ArchiveFile = "c:\\test.zip"
ZipControl.RecurseSubdirectories = true
ZipControl.IncludeFiles("c:\\foo\\*")
ZipControl.Compress()
Note: an archive already open for read may be closed by setting ArchiveFile to the empty string ("").
IPWorksZipExceptionpublic java.lang.String getExtractToPath()
Setting the ExtractToPath property affects the operation of the Extract and ExtractAll methods. Setting this property to a nonempty
string will cause all decompressed files to be written to the specified
path. If pathnames are given in the values of FileDecompressedName they will be regarded as relative to ExtractToPath .
If the specified directory does not exist, it will be created when extraction is done.
ExtractToPath should always be specified in the format native to the host operating system, and with a trailing slash or backslash. If the path is specified otherwise, it will be immediately converted and stored in the converted format. For example, "/temp" would be immediately converted to "\\temp\\" on a Windows system.
public void setExtractToPath(java.lang.String extractToPath)
throws IPWorksZipException
Setting the ExtractToPath property affects the operation of the Extract and ExtractAll methods. Setting this property to a nonempty
string will cause all decompressed files to be written to the specified
path. If pathnames are given in the values of FileDecompressedName they will be regarded as relative to ExtractToPath .
If the specified directory does not exist, it will be created when extraction is done.
ExtractToPath should always be specified in the format native to the host operating system, and with a trailing slash or backslash. If the path is specified otherwise, it will be immediately converted and stored in the converted format. For example, "/temp" would be immediately converted to "\\temp\\" on a Windows system.
IPWorksZipExceptionpublic java.lang.String getFileDecompressedName()
FileDecompressedName contains the name of the file in the archive, as stored on the file system, outside the archive.
When compressing a file, this property should be specified with a path, if necessary, to
allow the file to be found by the bean. If the file cannot be found when Compress is called, a trappable error will be generated, and the archive will not be correctly written.
When decompressing files, this property may be set prior to calling Extract . If this
property is set to the empty string when Extract is called, Extract will automatically
set this property to an appropriate value.
Paths on the local file system should be specified in the format native to the host operating system. They may also be specified in standard (UNIX) format, in which case they will be immediately converted.
public void setFileDecompressedName(java.lang.String fileDecompressedName)
throws IPWorksZipException
FileDecompressedName contains the name of the file in the archive, as stored on the file system, outside the archive.
When compressing a file, this property should be specified with a path, if necessary, to
allow the file to be found by the bean. If the file cannot be found when Compress is called, a trappable error will be generated, and the archive will not be correctly written.
When decompressing files, this property may be set prior to calling Extract . If this
property is set to the empty string when Extract is called, Extract will automatically
set this property to an appropriate value.
Paths on the local file system should be specified in the format native to the host operating system. They may also be specified in standard (UNIX) format, in which case they will be immediately converted.
IPWorksZipExceptionpublic boolean isHasMoreData()
The bzip2 format allows multiple bzip2 data members
to be concatenated into a single file. However, due to the nature of the
algorithm it is impossible to determine the number of data members until
after the entire archive has been decompressed. The HasMoreData property
can be used to cycle through the archive and extract each file.
Simply set the ArchiveFile and ExtractToPath properties, then call Extract as long as the bean has available data.
Note : the bean will not update FileDecompressedName unless
you manually set FileDecompressedName before each call to Extract .
Example (Extracting Multiple Files)
ZipControl.ArchiveFile = "c:\\temp.bz2"
ZipControl.ExtractToPath = "c:\\unzipped\\"
Do
//here you may set the file name in FileDecompressedName prior to extraction
ZipControl.Extract()
While ZipControl.HasMoreData
public void abort()
throws IPWorksZipException
Abort may be used to immediately interrupt compression or decompression. Any files partially
written by the bean will be deleted.
IPWorksZipException
public void append()
throws IPWorksZipException
The file contained in the FileDecompressedName property will be appended to the
archive specified by ArchiveFile .
This method may only be used to add files to an existing archive. To add files to a new
archive, Compress method should be used.
IPWorksZipException
public void compress()
throws IPWorksZipException
Invoking Compress creates the archive specified by ArchiveFile . When the
method is called, the file specified by FileDecompressedName will be opened, and the
file specified by ArchiveFile will contain the compressed output.
As the data is compressed the Progress event will be fired at regular intervals.
This event may be used to stream out the bzip2 file, or to display a progress bar
to the user.
IPWorksZipException
public java.lang.String config(java.lang.String configurationString)
throws IPWorksZipException
Config is a generic method available in every bean.
It is used to set and retrieve configuration settings for the
bean.
Configuration settings are similar in functionality to properties,
but they are rarely used. In order to avoid "polluting" the property
namespace of the bean, access to these internal properties is provided through the Config method.
To set a configuration setting named PROPERTY , you must call Config("PROPERTY=VALUE") , where VALUE is the value of the setting expressed as a string. For boolean values, use the strings "True", "False", "0", "1", "Yes", or "No" (case does not matter).
To read (query) the value of a configuration setting, you must call Config("PROPERTY") . The value will be returned as a string.
The bean accepts one or more of the following configuration settings .
Configuration settings are similar in functionality to properties,
but they are rarely used. In order to avoid "polluting" the property
namespace of the bean, access to these internal properties is provided through the Config method.
Extract , ExtractAll , and Compress will be written to the Progress event as well as to disk. Applications may stream out the compressed or decompressed
data by trapping this event and copying the data.If WriteToProgressEvent is set to false, the data will not be streamed out, and
the Data parameter of the Progress event will contain null.
By default, this config is set to false.
IPWorksZipException
public void extract()
throws IPWorksZipException
Invoking Extract decompresses the archive specified by ArchiveFile . The
compressed file will be extracted, and written to disk.
If FileDecompressedName is set to a nonempty string the file will be written there.
Otherwise the bean will automatically set FileDecompressedName to an
appropriate value:
If ArchiveFile ends in ".bz2", this filename, less the ".bz2" extension will
be used.
If this condition does not hold, ".unzipped" will be appended to ArchiveFile .
IPWorksZipException
public void extractAll()
throws IPWorksZipException
ExtractAll extracts all files from the archive. The file(s)
will be extracted to the directory specified by ExtractToPath ,
and given the names specified by FileDecompressedName .
The BeginFile and EndFile events will be fired before and after
each file is extracted, and the Progress event will be fired as the
data is extracted. If WriteToProgressEvent is set to true,
the decompressed data will be streamed out through the Progress event.
IPWorksZipException
public void scan(javax.servlet.http.HttpServletRequest request)
throws IPWorksZipException
This method will scan the bzip archive specified by ArchiveFile . The archive will be read,
and the header will be checked.
Unlike in the Zip , Tar , and Jar beans, it is never necessary to
invoke this method, and it will not be automatically invoked by Extract .
Suggested uses for this method would be to check that the file is a bzip file.
IPWorksZipException
public void setArchiveInputStream(java.io.InputStream archiveStream)
throws IPWorksZipException
This method should be set when the archive is to be read from a stream when Extract is called.
By default, and when this is set to null, the bean will read from the file specified
by ArchiveFile . However, when this is a valid stream, the data will be read from the
stream.
IPWorksZipException
public void setArchiveOutputStream(java.io.OutputStream archiveStream)
throws IPWorksZipException
This method should be set when the archive is to be written to a stream when Compress is called.
By default, and when this is set to null, the bean will write to the file specified
by ArchiveFile . However, when this is a valid stream, the data will be written to the
stream.
IPWorksZipException
public void setFileInputStream(java.io.InputStream archiveStream)
throws IPWorksZipException
When this method is set to a valid stream, the bean
will read in the data from the stream as the current file
instead of reading from the file contained in the FileDecompressedName property.
IPWorksZipException
public void addBzip2EventListener(ipworkszip.Bzip2EventListener l)
throws java.util.TooManyListenersException
java.util.TooManyListenersExceptionpublic void removeBzip2EventListener(ipworkszip.Bzip2EventListener l)
|
IP*Works! ZIP V8 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||