Package com.blackrook.fs.archive
Class ZipArchive
- java.lang.Object
-
- com.blackrook.fs.FSFileArchive
-
- com.blackrook.fs.archive.ZipArchive
-
public class ZipArchive extends FSFileArchive
This is an FS wrapping class for wrapping a zip file on the native file system.- Author:
- Matthew Tropiano
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,ZipEntry>
fileLookupTable
Table for file lookup.protected ZipFile
zipfileRef
Zip file reference.
-
Constructor Summary
Constructors Constructor Description ZipArchive(File path)
Constructs a new zip archive from an abstract file.ZipArchive(String path)
Constructs a new zip archive from an abstract path.ZipArchive(ZipFile f)
Constructs a new zip archive from a file object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canCreateFiles()
Can this archive create a new file within itself?OutputStream
createFile(String path)
Creates a file in this archive using the name and path provided.FSFile[]
getAllFiles()
Retrieves all of the files within this object as FSFile objects.FSFile[]
getAllFiles(FSFileFilter filter)
Retrieves all of the files within this object that pass the filter test as FSFile objects.FSFile[]
getAllFilesInDir(String path)
Retrieves all of the files within a directory as FSFile objects.FSFile[]
getAllFilesInDir(String path, FSFileFilter filter)
Retrieves all of the files within this object as FSFile objects that pass the filter test.FSFile
getFile(String path)
Returns an FSFile reference of a file within this wrapped file.-
Methods inherited from class com.blackrook.fs.FSFileArchive
getArchiveName, getPath, setArchiveName, setPath
-
-
-
-
Constructor Detail
-
ZipArchive
public ZipArchive(String path) throws ZipException, IOException
Constructs a new zip archive from an abstract path.- Parameters:
path
- a path to a zip file on the native file system.- Throws:
FileSystemException
- if the path refers to a location that is not a folder.ZipException
- if something is wrong with the Zip file.IOException
- if something is wrong with the file.NullPointerException
- if path is null.
-
ZipArchive
public ZipArchive(File path) throws ZipException, IOException
Constructs a new zip archive from an abstract file.- Parameters:
path
- a path to a zip file on the native file system.- Throws:
FileSystemException
- if the path refers to a location that is not a folder.ZipException
- if something is wrong with the Zip file.IOException
- if something is wrong with the file.NullPointerException
- if path is null.
-
ZipArchive
public ZipArchive(ZipFile f) throws ZipException, IOException
Constructs a new zip archive from a file object.- Parameters:
f
- a file that is a zip file on the native file system.- Throws:
FileSystemException
- if the file refers to a location that is not a folder.ZipException
- if something is wrong with the Zip file.IOException
- if something is wrong with the file.NullPointerException
- if f is null.
-
-
Method Detail
-
getFile
public FSFile getFile(String path)
Description copied from class:FSFileArchive
Returns an FSFile reference of a file within this wrapped file.- Specified by:
getFile
in classFSFileArchive
- Parameters:
path
- the abstract path of a file inside this file.- Returns:
- a new reference to the file requested, or null if the path refers to a location that is not inside this file.
-
getAllFiles
public FSFile[] getAllFiles()
Description copied from class:FSFileArchive
Retrieves all of the files within this object as FSFile objects.- Specified by:
getAllFiles
in classFSFileArchive
- Returns:
- an array of FSFiles, each entry representing a particular file in this object.
-
getAllFiles
public FSFile[] getAllFiles(FSFileFilter filter)
Description copied from class:FSFileArchive
Retrieves all of the files within this object that pass the filter test as FSFile objects.- Specified by:
getAllFiles
in classFSFileArchive
- Parameters:
filter
- the file filter to use.- Returns:
- an array of FSFiles, each entry representing a particular file in this object.
-
getAllFilesInDir
public FSFile[] getAllFilesInDir(String path)
Description copied from class:FSFileArchive
Retrieves all of the files within a directory as FSFile objects.- Specified by:
getAllFilesInDir
in classFSFileArchive
- Parameters:
path
- the abstract path of a directory inside this file.- Returns:
- an array of FSFiles, each entry representing a particular file in this object.
-
getAllFilesInDir
public FSFile[] getAllFilesInDir(String path, FSFileFilter filter)
Description copied from class:FSFileArchive
Retrieves all of the files within this object as FSFile objects that pass the filter test.- Specified by:
getAllFilesInDir
in classFSFileArchive
- Parameters:
path
- the abstract path of a directory inside this file.filter
- the file filter to use.- Returns:
- an array of FSFiles, each entry representing a particular file in this object.
-
canCreateFiles
public boolean canCreateFiles()
Description copied from class:FSFileArchive
Can this archive create a new file within itself?- Specified by:
canCreateFiles
in classFSFileArchive
- Returns:
- true if it can, false if it is read-only.
-
createFile
public OutputStream createFile(String path) throws IOException
Description copied from class:FSFileArchive
Creates a file in this archive using the name and path provided.- Specified by:
createFile
in classFSFileArchive
- Parameters:
path
- the path of the file to create.- Returns:
- an acceptable OutputStream for filling the file with data.
- Throws:
IOException
- if a read error occurs during the fetch.
-
-