src/de/uhilger/fm/Deflator.java | ●●●●● patch | view | raw | blame | history | |
src/de/uhilger/fm/Inflator.java | ●●●●● patch | view | raw | blame | history | |
src/de/uhilger/fm/package-info.java | ●●●●● patch | view | raw | blame | history |
src/de/uhilger/fm/Deflator.java
@@ -40,13 +40,14 @@ * gepackt werden soll. Die Datei mit dem gepackten Ordnerinhalt wird in dem Ordner angelegt, der * den zu packenden Ordner enthaelt. * * @param fName Name des zu packenden Ordners * @param relPath relativer Pfad zum Ordner, der gepackt werden soll * @param fName Name und Pfad relativ zu base des zu packenden Ordners /home/neu-2024-11-08-1722/ * @param relPath relativer Pfad zum Ordner, der gepackt werden soll /h2/cms/home/neu-2024-11-08-1722/?zip * @param base /Users/ulli/data/helix-data * @return die Meldung mit dem Ergebnis. Wenn die Meldung nicht "ok" lautet wurde die ZIP-Datei * nicht erzeugt und die Meldung nennt den Grund. */ public String packFolder(String fName, String relPath, String base/*, HttpExchange e*/) { if (!relPath.startsWith(".")) { public String packFolder(String fName, /*String relPath, */String base) { // if (!relPath.startsWith(".")) { try { //String fName = getFileName(e); //logger.fine("fName: " + fName); @@ -72,9 +73,9 @@ //logger.log(Level.SEVERE, result, ex); return result; } } else { return "Falsche relative Pfadangabe"; } // } else { // return "Falsche relative Pfadangabe"; // } } /** src/de/uhilger/fm/Inflator.java
@@ -26,18 +26,23 @@ import java.util.zip.ZipFile; /** * Eine Klasse mit Methoden zum entpacken von Dateien * Entpacken von Dateien * * @author Ulrich Hilger, 15. Januar 2024 */ public class Inflator { /* --------- ZIP entpacken ---------------- */ public String extractZipfile(String fName, String relPath, String base) { /** * Eine Zip-Datei entpacken * * @param fName Name der Zip-Datei * @param base absoluter Pfad des Ablageortes der Zip-Datei * @return 'ok', wenn erfolgreich oder Fehlermeldung, wenn nicht */ public String extractZipfile(String fName, /*String relPath, */String base) { //logger.fine("fName: " + fName + ", relPath: " + relPath); String result = null; if (!relPath.startsWith(".")) { // if (!relPath.startsWith(".")) { try { //File targetDir = new File(fileBase, relPath); //File targetDir = getTargetDir(relPath); @@ -51,17 +56,17 @@ result = ex.getLocalizedMessage(); //logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex); } } else { result = "Falsche relative Pfadangabe."; } // } else { // result = "Falsche relative Pfadangabe."; // } return result; } /** * extract a given ZIP archive to the folder respective archive resides in * Eine Datei in den Ordner entpacken, in dem sie liegt * * @param archive the archive to extract * @throws Exception * @param archive die zu entpackende Zip-Datei * @throws Exception wenn etwas schief geht */ private boolean extract(File archive) throws Exception { ZipFile zipfile = new ZipFile(archive); @@ -76,11 +81,12 @@ /** * unzip a given entry of a given zip file to a given location * Einen Eintrag in einer ZIP-Datei an einen gegebenen Ausgabeort extrahieren * * @param zipfile the zip file to read an entry from * @param zipentry the zip entry to read * @param destPath the path to the destination location for the extracted content * @throws IOException * @param zipfile die Zip-Datei, aus der ein zu entpackender Eintrag gelesen werden soll * @param zipentry der Eintrag, der entpackt werden soll * @param destPath der Pfad zum Ausgabeort * @throws IOException wenn etwas schief geht */ private void unzip(ZipFile zipfile, ZipEntry zipentry, String destPath) throws IOException { byte buf[] = new byte[1024]; src/de/uhilger/fm/package-info.java
@@ -32,6 +32,13 @@ * Inflator().extractZipfile(fileName, path, base) * </pre> * * Die hier enthaltenen Funktionen beinhalten keine Massnahmen gegen Path Traversal o.ä. * Dies ist beabsichtigt, um Pfadausdruecke wie z.B. '../' bei den hier implementierten * Dateioperationen verarbeiten zu koennen. * * <b>Programme, die diese Klassenbibliothek einsetzen, muessen eigene Massnahmen gegen * Path Traversal o.ä. beisteuern, sofern dies nicht gewuenscht ist.</b> * * <p>Die folgenden Funktionalitaeten sind in dieser Auspraegung einer * Dateiverwaltung fest angelegt. Sie sind damit Kandidaten fuer eine * Erweiterung dieser Klassenbibliothek um andere evtl. benoetigte