Class ZipArchive
java.lang.Object
VASSAL.tools.io.ZipArchive
- All Implemented Interfaces:
Closeable
,AutoCloseable
,FileArchive
- Since:
- 3.2.0
- Author:
- Joel Uckelman
-
Constructor Summary
ConstructorDescriptionZipArchive
(File file) Opens a ZIP archive.ZipArchive
(File file, boolean truncate) Opens a ZIP archive.ZipArchive
(String path) Opens a ZIP archive.ZipArchive
(String path, boolean truncate) Opens a ZIP archive.ZipArchive
(Path path, boolean truncate) Opens a ZIP archive.ZipArchive
(FileArchive src, File dst) Copies a ZIP archive.ZipArchive
(FileArchive src, String dst) Copies a ZIP archive.ZipArchive
(FileArchive src, Path dst) Copies a ZIP archive. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds the contents of a byte array to the archive.void
Adds a file to the archive.void
add
(String path, InputStream in) Adds the contents of anInputStream
to the archive.void
Adds a file to the archive.void
close()
Closes the archive, writing all changes to disk.boolean
Queries whether a file exists in the archive.void
flush()
Forces all changes to the archive to disk.long
getCompressedSize
(String path) Get the compressed size of a file in the archive, in bytes.getFile()
Gets the path to the archive file.getFiles()
Gets the list of files in the archive.Gets the list of files under a given directory of the archive.getInputStream
(String path) Gets anInputStream
to read from the given file.long
Gets the modification time of a file in the archive, in milliseconds since the epoch.getName()
Gets the path to the archive file.getOutputStream
(String path) Gets anOutputStream
to write to the given file.getOutputStream
(String path, boolean compress) Gets anOutputStream
to write to the given file.getPath()
long
Gets the size of a file in the archive, in bytes.boolean
isClosed()
Queries whether the archive is closed.boolean
Queries whether the archive has unsaved modifications.boolean
Removes a file from the archive.void
revert()
Reverts the archive to its last saved state.
-
Constructor Details
-
ZipArchive
Opens a ZIP archive.- Parameters:
path
- the name of the archive- Throws:
IOException
- oops
-
ZipArchive
Opens a ZIP archive.- Parameters:
file
- the name of the archive- Throws:
IOException
- oops
-
ZipArchive
Opens a ZIP archive.- Parameters:
path
- the name of the archivetruncate
- iftrue
, truncate the archive file on open- Throws:
IOException
- oops
-
ZipArchive
Opens a ZIP archive.- Parameters:
file
- the name of the archivetruncate
- iftrue
, truncate the archive file on open- Throws:
IOException
- oops
-
ZipArchive
Opens a ZIP archive.- Parameters:
path
- the name of the archivetruncate
- iftrue
, truncate the archive file on open- Throws:
IOException
- oops
-
ZipArchive
Copies a ZIP archive.- Parameters:
src
- the name of the source archivedst
- the name of the destination archive- Throws:
IOException
- oops
-
ZipArchive
Copies a ZIP archive.- Parameters:
src
- the name of the source archivedst
- the name of the destination archive- Throws:
IOException
- oops
-
ZipArchive
Copies a ZIP archive.- Parameters:
src
- the name of the source archivedst
- the name of the destination archive- Throws:
IOException
- oops
-
-
Method Details
-
getName
Gets the path to the archive file.- Specified by:
getName
in interfaceFileArchive
- Returns:
- the path as a
String
-
getFile
Gets the path to the archive file.- Specified by:
getFile
in interfaceFileArchive
- Returns:
- the path as a
File
-
getPath
-
isClosed
public boolean isClosed()Queries whether the archive is closed.- Specified by:
isClosed
in interfaceFileArchive
- Returns:
true
if the archive is closed
-
isModified
public boolean isModified()Queries whether the archive has unsaved modifications.- Specified by:
isModified
in interfaceFileArchive
- Returns:
true
if the archive is modified
-
getInputStream
Gets anInputStream
to read from the given file. Note: It is imperative the that calling code ensures that this stream is eventually closed, since the returned stream holds a read lock on the archive.- Specified by:
getInputStream
in interfaceFileArchive
- Parameters:
path
- the path to the file in the archive- Returns:
- an
InputStream
containing the requested file - Throws:
IOException
- oops
-
getOutputStream
Gets anOutputStream
to write to the given file. Note: It is imperative the that calling code ensures that this stream is eventually closed, since the returned stream holds a write lock on the archive.- Specified by:
getOutputStream
in interfaceFileArchive
- Parameters:
path
- the path to the file in the archive- Returns:
- an
OutputStream
for the requested file - Throws:
IOException
- oops
-
getOutputStream
Gets anOutputStream
to write to the given file. Note: It is imperative the that calling code ensures that this stream is eventually closed, since the returned stream holds a write lock on the archive.- Parameters:
path
- the path to the file in the archivecompress
- whether to compress the file- Returns:
- an
OutputStream
for the requested file - Throws:
IOException
- oops
-
add
Adds a file to the archive.- Specified by:
add
in interfaceFileArchive
- Parameters:
path
- the internal path of the file to be addedextPath
- the external path of the file to be added- Throws:
IOException
- oops
-
add
Adds a file to the archive.- Specified by:
add
in interfaceFileArchive
- Parameters:
path
- the internal path of the file to be addedextPath
- the external path to the file to be added- Throws:
IOException
- oops
-
add
Adds the contents of a byte array to the archive.- Specified by:
add
in interfaceFileArchive
- Parameters:
path
- the internal path of the file to be addedbytes
- the bytes to be added- Throws:
IOException
- oops
-
add
Adds the contents of anInputStream
to the archive.- Specified by:
add
in interfaceFileArchive
- Parameters:
path
- the internal path of the file to be addedin
- theInputStream
to read from- Throws:
IOException
- oops
-
remove
Removes a file from the archive.- Specified by:
remove
in interfaceFileArchive
- Parameters:
path
- the path to the file in the archive- Returns:
true
if the file existed in the archive- Throws:
IOException
- oops
-
revert
Reverts the archive to its last saved state.- Specified by:
revert
in interfaceFileArchive
- Throws:
IOException
- oops
-
flush
Forces all changes to the archive to disk.- Specified by:
flush
in interfaceFileArchive
- Throws:
IOException
- oops
-
close
Closes the archive, writing all changes to disk.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceFileArchive
- Throws:
IOException
- oops
-
contains
Queries whether a file exists in the archive.- Specified by:
contains
in interfaceFileArchive
- Parameters:
path
- the path to the file in the archive- Returns:
true
if the file exists in the archive- Throws:
IOException
- oops
-
getSize
Gets the size of a file in the archive, in bytes.- Specified by:
getSize
in interfaceFileArchive
- Parameters:
path
- the path to the file in the archive- Returns:
- the size of the file, in bytes
- Throws:
IOException
- oops
-
getCompressedSize
Get the compressed size of a file in the archive, in bytes. Rerurn the uncompressed size by default.- Specified by:
getCompressedSize
in interfaceFileArchive
- Returns:
- the compressed size of the file, in bytes
- Throws:
IOException
- oops
-
getMTime
Gets the modification time of a file in the archive, in milliseconds since the epoch.- Specified by:
getMTime
in interfaceFileArchive
- Parameters:
path
- the path to the file in the archive- Returns:
- the mtime of the file
- Throws:
IOException
- oops
-
getFiles
Gets the list of files in the archive.- Specified by:
getFiles
in interfaceFileArchive
- Returns:
- the list of files in the archive
- Throws:
IOException
- oops
-
getFiles
Gets the list of files under a given directory of the archive.- Specified by:
getFiles
in interfaceFileArchive
- Parameters:
root
- the directory- Returns:
- the list of files under the given directory
- Throws:
IOException
- oops
-