Class ZipFileAccess
java.lang.Object
dev.jcputney.elearning.parser.impl.ZipFileAccess
- All Implemented Interfaces:
FileAccess,AutoCloseable
An implementation of the
FileAccess interface for accessing files within a ZIP archive.
This class allows file existence checks, file listing, and retrieving file contents from a ZIP
file.-
Constructor Summary
ConstructorsConstructorDescriptionZipFileAccess(String zipFilePath) Constructs a newZipFileAccessinstance for the specified ZIP path. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes the ZIP file to release resources.booleanfileExistsInternal(String path) Checks if a file exists within the ZIP archive.Retrieves the contents of a file within the ZIP archive as an InputStream.getFileContentsInternal(String path, StreamingProgressListener progressListener) Retrieves the contents of a file within the ZIP archive as an InputStream with optional progress tracking.listFilesInternal(String directoryPath) Lists all files within a specified directory in the ZIP archive.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface dev.jcputney.elearning.parser.api.FileAccess
fileExists, fullPath, getFileContents, getRootPath, listFiles
-
Constructor Details
-
ZipFileAccess
Constructs a newZipFileAccessinstance for the specified ZIP path.- Parameters:
zipFilePath- The path to the ZIP file.- Throws:
IOException- If the ZIP file can't be opened.
-
-
Method Details
-
fileExistsInternal
Checks if a file exists within the ZIP archive.- Specified by:
fileExistsInternalin interfaceFileAccess- Parameters:
path- The path to check (guaranteed to be non-null).- Returns:
- True if the file exists in the ZIP archive, false otherwise.
-
listFilesInternal
Lists all files within a specified directory in the ZIP archive.- Specified by:
listFilesInternalin interfaceFileAccess- Parameters:
directoryPath- The directory to list files from, for example, "folder/" (guaranteed to be non-null).- Returns:
- A list of file paths within the directory.
-
getFileContentsInternal
Retrieves the contents of a file within the ZIP archive as an InputStream.- Specified by:
getFileContentsInternalin interfaceFileAccess- Parameters:
path- The path to retrieve contents from (guaranteed to be non-null).- Returns:
- An InputStream of the file contents.
- Throws:
IOException- if the file can't be read.
-
getFileContentsInternal
public InputStream getFileContentsInternal(String path, StreamingProgressListener progressListener) throws IOException Retrieves the contents of a file within the ZIP archive as an InputStream with optional progress tracking.- Parameters:
path- The path to retrieve contents from (guaranteed to be non-null).progressListener- Optional progress listener for tracking large file operations.- Returns:
- An InputStream of the file contents.
- Throws:
IOException- if the file can't be read.
-
close
Closes the ZIP file to release resources.- Specified by:
closein interfaceAutoCloseable- Throws:
IOException- if an error occurs while closing the ZIP file.
-