/**
* Klassen fuer das Dateimanagement mit java.nio.file
.
*
* Die folgenden Funktionen sind enthalten:
*
*
* Ordnerinhalt auflisten: * Catalog().list(relPathAndName, miniUrlBase, baseDir) * * Datei speichern: * Writer().speichern(file, content) * * Dateien und Ordner loeschen: * Eraser().deleteFiles(relPfad, dateiname, basis) * * Kopieren von Dateien und Ordnern: * Mover().copyOrMoveFiles(quelle, ziel, dateiNamen, op, base) * * Verschieben von Dateien und Ordnern: * Mover().copyOrMoveFiles(quelle, ziel, dateiNamen, op, base) * * Duplizieren einer Datei: * Duplicator().duplizieren(base, fileName) * * Umbenennen einer Datei oder eines Ordners: * Renamer().umbenennen(exchange, fileName, params[1], file) * * Packen eines Ordners: * Deflator().packFolder(fileName, path, base) * * Entpacken einer ZIP-Datei: * Inflator().extractZipfile(fileName, path, base) ** * 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. * * Programme, die diese Klassenbibliothek einsetzen, muessen eigene Massnahmen gegen * Path Traversal o.ä. beisteuern, sofern dies nicht gewuenscht ist. * *
Die folgenden Funktionalitaeten sind in dieser Auspraegung einer * Dateiverwaltung fest angelegt. Sie sind damit Kandidaten fuer eine * Erweiterung dieser Klassenbibliothek um andere evtl. benoetigte * Auspraegungen.
* *Handhabung von Bilddateien
* * Neben der Datei eines Bildes in Originalgroesse werden weitere Dateien als Varianten * eines Bildes unterstuetzt. * * In Dateilisten werden diese Varianten ausgeblendet und nur das Originalbild gezeigt. * * Die Dateinamen von Varianten eines Bildes muessen dazu einen mit Unterstrich beginnenden * Namenszusatz enthalten wie bspw._tn
fuer thumbnail oder _sm
* fuer small usw. Gleichsam lassen sich damit Eigenschaften wie zum Beispiel
* eine Base64-Kodierung kombinieren. Hier waere der Namenszusatz dann eine Kombination
* aus Groesse und Kodierung wie mit _sm_b64
, so dass sich fuer ein Bild stets
* eine ganze Gruppe von Dateien ergibt, z.B.:
*
* * bild.jpg * bild_sm.jpg * bild_sm_b64.jpg ** * Alle Dateioperationen dieser Klassenbibliothek wirken dennoch stets auf * alle Varianten des Bildes, wie es auf der Kommandozeile mit einem Wildcard-Operator * gemacht wuerde, z.B. * *
* cp /pfad/zum/bild*.jpg /pfad/zum/zielordner ** * Eine Dateiliste enthaelt aus diesem Grund fuer Bilddateien die beiden zusaetzlichen Angaben *
miniurl
und imgsrc
.
*
* Ordnerliste im JSON-Format
* * Die Liste mit Dateien eines Ordners wird im JSON-Format ausgegeben. Ueber eine * entsprechende Erweiterung koennte die Ausgabe in verschiedenen waehlbaren Formaten * erfolgen. * */ package de.uhilger.fm;