|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.mucommander.file.AbstractFile
com.mucommander.file.impl.ProxyFile
com.mucommander.file.AbstractArchiveFile
com.mucommander.file.AbstractRWArchiveFile
com.mucommander.file.impl.zip.ZipArchiveFile
public class ZipArchiveFile
ZipArchiveFile provides read and write access (under certain conditions) to archives in the Zip format.
Two different packages that implement the actual Zip compression format are used: the homemade
com.mucommander.file.impl.zip.provider package and Java's java.util.zip.
com.mucommander.file.impl.zip.provider provides additional functionality and improved performance over
java.util.zip but requires the underlying file to supply a RandomAccessInputStream for read
access and a RandomAccessOutputStream for write access. If the underlying file can't provide at least a
RandomAccessInputStream, the lesser java.util.zip package is used.
ZipFormatProvider,
ZipFile| Field Summary |
|---|
| Fields inherited from class com.mucommander.file.AbstractArchiveFile |
|---|
entryTreeDate, entryTreeRoot |
| Fields inherited from class com.mucommander.file.impl.ProxyFile |
|---|
file |
| Fields inherited from class com.mucommander.file.AbstractFile |
|---|
DEFAULT_SEPARATOR, fileURL, IO_BUFFER_SIZE, MUST_HINT, MUST_NOT_HINT, SHOULD_HINT, SHOULD_NOT_HINT, windowsDriveRootPattern |
| Fields inherited from interface com.mucommander.file.PermissionTypes |
|---|
EXECUTE_PERMISSION, READ_PERMISSION, WRITE_PERMISSION |
| Fields inherited from interface com.mucommander.file.PermissionAccesses |
|---|
GROUP_ACCESS, OTHER_ACCESS, USER_ACCESS |
| Constructor Summary | |
|---|---|
ZipArchiveFile(AbstractFile file)
Creates a new ZipArchiveFile on top of the given file. |
|
| Method Summary | |
|---|---|
java.io.OutputStream |
addEntry(ArchiveEntry entry)
Adds the given entry to the archive and returns an OutputStream to write the entry's contents
if the entry is a regular file, null if the entry is a directory. |
void |
deleteEntry(ArchiveEntry entry)
Deletes the specified entry from the archive. |
java.util.Vector |
getEntries()
Returns a Vector of ArchiveEntry, representing all the entries this archive file contains. |
java.io.InputStream |
getEntryInputStream(ArchiveEntry entry)
Returns an InputStream to read from the given archive entry. |
boolean |
isWritableArchive()
Returns true only if the proxied archive file has random read and write access, as reported
by ProxyFile.hasRandomAccessInputStream() and ProxyFile.hasRandomAccessOutputStream() respectively. |
void |
mkfile()
Creates an empty, valid Zip file. |
void |
optimizeArchive()
Processes the archive file to leave it in an optimal form. |
void |
updateEntry(ArchiveEntry entry)
Updates the specified entry in the archive with the attributes containted in the ArchiveEntry object. |
| Methods inherited from class com.mucommander.file.AbstractArchiveFile |
|---|
addToEntriesTree, canRunProcess, checkEntriesTree, createEntriesTree, declareEntriesTreeUpToDate, getArchiveEntryFile, getArchiveEntryFile, getFreeSpace, isBrowsable, isDirectory, ls, ls, ls, ls, ls, removeFromEntriesTree, runProcess |
| Methods inherited from class com.mucommander.file.AbstractFile |
|---|
addTrailingSeparator, calculateChecksum, calculateChecksum, calculateChecksum, changePermissions, checkCopyPrerequisites, copyRecursively, deleteRecursively, getAbsolutePath, getAncestor, getAncestor, getCanonicalPath, getChild, getChildSilently, getDirectChild, getExtension, getIcon, getIcon, getNameWithoutExtension, getParentArchive, getParentSilently, getTopAncestor, hasAncestor, hasAncestor, isParentOf, mkdir, mkdirs, mkfile, removeTrailingSeparator |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public ZipArchiveFile(AbstractFile file)
file - the underlying archive file| Method Detail |
|---|
public java.util.Vector getEntries()
throws java.io.IOException
AbstractArchiveFileArchiveEntry, representing all the entries this archive file contains.
This method will be called the first time one of the ls() is called. If will not be further called,
unless the file's date has changed since the last time one of the ls() methods was called.
getEntries in class AbstractArchiveFilejava.io.IOException
public java.io.InputStream getEntryInputStream(ArchiveEntry entry)
throws java.io.IOException
AbstractArchiveFileArchiveEntry instance is
necessarily one of the entries that were returned by AbstractArchiveFile.getEntries().
getEntryInputStream in class AbstractArchiveFilejava.io.IOException
public java.io.OutputStream addEntry(ArchiveEntry entry)
throws java.io.IOException
AbstractRWArchiveFileOutputStream to write the entry's contents
if the entry is a regular file, null if the entry is a directory.
Throws an IOException if the entry already exists in the archive or if an I/O error occurs.
addEntry in class AbstractRWArchiveFileentry - the entry to add to the archive
java.io.IOException - if the entry already exists in the archive or if an I/O error occurs
public void deleteEntry(ArchiveEntry entry)
throws java.io.IOException
AbstractRWArchiveFileIOException if the entry doesn't exist
in the archive or if an I/O error occurs.
deleteEntry in class AbstractRWArchiveFileentry - the entry to delete from the archive
java.io.IOException - if the entry doesn't exist in the archive or if an I/O error occurs
public void updateEntry(ArchiveEntry entry)
throws java.io.IOException
AbstractRWArchiveFileArchiveEntry object.
Throws an IOException if the entry doesn't exist in the archive or if an I/O error occurs.
This methods can be used to update the entry's date and permissions for instance.
updateEntry in class AbstractRWArchiveFileentry - the entry to update in the archive
java.io.IOException - if the entry doesn't exist in the archive or if an I/O error occurs
public void optimizeArchive()
throws java.io.IOException
AbstractRWArchiveFileThe actual effect of this method on the archive file depends on the kind of archive. It may be implemented
as a no-op if there is no use for it.
To illustrate, in the case of a ZipArchiveFile, this method removes chunks
of free space that are left when entries are deleted.
optimizeArchive in class AbstractRWArchiveFilejava.io.IOException - if an I/O error occurspublic boolean isWritableArchive()
true only if the proxied archive file has random read and write access, as reported
by ProxyFile.hasRandomAccessInputStream() and ProxyFile.hasRandomAccessOutputStream() respectively. If that is
not the case, this archive has read-only access and behaves just like a
AbstractROArchiveFile.
isWritableArchive in class AbstractRWArchiveFile
public void mkfile()
throws java.io.IOException
mkfile in class ProxyFilejava.io.IOException - if the file could not be created, either because it already exists or because of an I/O error
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
This file is part of muCommander - Copyright (C) 2002-2008 Maxence Bernard