Class ZipEntryHelper
- java.lang.Object
-
- org.ametys.plugins.contentio.archive.ZipEntryHelper
-
public final class ZipEntryHelper extends Object
Utility class to retrievePathrepresenting folders or files under a ZIP archive.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static DirectoryStream<Path>children(Path zipArchivePath, Optional<String> startingPath, DirectoryStream.Filter<? super Path> filter)Opens a directory, returning aDirectoryStreamto iterate over the entries in the directory.static booleanzipEntryFileExists(Path zipPath, String zipEntryFilePath)Checks if the given file entry exists in the ZIP archive.static InputStreamzipEntryFileInputStream(Path zipPath, String zipEntryFilePath)Returns an input stream for reading the content of an entry file of a ZIP archive.static booleanzipEntryFolderExists(Path zipPath, String zipEntryFolderPath)Checks if the given folder entry exists in the ZIP archive.static PathzipFileRoot(Path zipArchivePath)Return thePathof the root of the given ZIP archive.static Stream<Path>zipFileTree(Path zipArchivePath, Optional<String> startingPath, BiPredicate<Path,BasicFileAttributes> filter)Returns a Stream that is lazily populated with Path by searching for files in a file tree rooted at a given starting path within the ZIP, or the ZIP root.
-
-
-
Method Detail
-
zipFileRoot
public static Path zipFileRoot(Path zipArchivePath) throws IOException
Return thePathof the root of the given ZIP archive.- Parameters:
zipArchivePath- The zip path- Returns:
- the PAth of the root
- Throws:
IOException- if an I/O error is thrown when accessing a file.
-
zipFileTree
public static Stream<Path> zipFileTree(Path zipArchivePath, Optional<String> startingPath, BiPredicate<Path,BasicFileAttributes> filter) throws IOException
Returns a Stream that is lazily populated with Path by searching for files in a file tree rooted at a given starting path within the ZIP, or the ZIP root.- Parameters:
zipArchivePath- The zip pathstartingPath- The (optional) starting path within the ZIPfilter- The filter- Returns:
- the
StreamofPath - Throws:
IOException- if an I/O error is thrown when accessing a file.
-
children
public static DirectoryStream<Path> children(Path zipArchivePath, Optional<String> startingPath, DirectoryStream.Filter<? super Path> filter) throws IOException
Opens a directory, returning aDirectoryStreamto iterate over the entries in the directory.- Parameters:
zipArchivePath- The zip pathstartingPath- The (optional) starting path within the ZIPfilter- The filter- Returns:
- a new and opened
DirectoryStreamobject - Throws:
IOException- if an I/O error is thrown when accessing a file.
-
zipEntryFolderExists
public static boolean zipEntryFolderExists(Path zipPath, String zipEntryFolderPath) throws IOException
Checks if the given folder entry exists in the ZIP archive.- Parameters:
zipPath- The zip pathzipEntryFolderPath- The path of the folder within the ZIP- Returns:
trueif the entry exists- Throws:
IOException- if an I/O error is thrown when accessing a file.
-
zipEntryFileExists
public static boolean zipEntryFileExists(Path zipPath, String zipEntryFilePath) throws IOException
Checks if the given file entry exists in the ZIP archive.- Parameters:
zipPath- The zip pathzipEntryFilePath- The path of the file within the ZIP- Returns:
trueif the entry exists- Throws:
IOException- if an I/O error is thrown when accessing a file.
-
zipEntryFileInputStream
public static InputStream zipEntryFileInputStream(Path zipPath, String zipEntryFilePath) throws IOException
Returns an input stream for reading the content of an entry file of a ZIP archive.
You may check if the entry exist withzipEntryFileExists(java.nio.file.Path, java.lang.String), otherwise you may get anIOException.
It must be closed.- Parameters:
zipPath- The zip pathzipEntryFilePath- The path within the ZIP- Returns:
- a new input stream
- Throws:
IOException- if an I/O error is thrown when accessing a file.
-
-