commit | author | age
|
bcd08a
|
1 |
/** |
8bde6f
|
2 |
* Klassen fuer das Dateimanagement mit <code>java.nio.file</code>. |
269203
|
3 |
* |
0bb213
|
4 |
* Die folgenden Funktionen sind enthalten: |
U |
5 |
* |
|
6 |
* <pre> |
|
7 |
* Ordnerinhalt auflisten: |
8bde6f
|
8 |
* Catalog().list(relPathAndName, miniUrlBase, baseDir) |
e1fae2
|
9 |
* |
f29f29
|
10 |
* Datei speichern: |
8bde6f
|
11 |
* Writer().speichern(file, content) |
0bb213
|
12 |
* |
U |
13 |
* Dateien und Ordner loeschen: |
8bde6f
|
14 |
* Eraser().deleteFiles(relPfad, dateiname, basis) |
0bb213
|
15 |
* |
U |
16 |
* Kopieren von Dateien und Ordnern: |
f29f29
|
17 |
* Mover().copyOrMoveFiles(quelle, ziel, dateiNamen, op, base) |
0bb213
|
18 |
* |
U |
19 |
* Verschieben von Dateien und Ordnern: |
f29f29
|
20 |
* Mover().copyOrMoveFiles(quelle, ziel, dateiNamen, op, base) |
0bb213
|
21 |
* |
U |
22 |
* Duplizieren einer Datei: |
f29f29
|
23 |
* Duplicator().duplizieren(base, fileName) |
0bb213
|
24 |
* |
U |
25 |
* Umbenennen einer Datei oder eines Ordners: |
f29f29
|
26 |
* Renamer().umbenennen(exchange, fileName, params[1], file) |
0bb213
|
27 |
* |
U |
28 |
* Packen eines Ordners: |
f29f29
|
29 |
* Deflator().packFolder(fileName, path, base) |
0bb213
|
30 |
* |
U |
31 |
* Entpacken einer ZIP-Datei: |
f29f29
|
32 |
* Inflator().extractZipfile(fileName, path, base) |
0bb213
|
33 |
* </pre> |
8bde6f
|
34 |
* |
7e5166
|
35 |
* Die hier enthaltenen Funktionen beinhalten keine Massnahmen gegen Path Traversal o.ä. |
U |
36 |
* Dies ist beabsichtigt, um Pfadausdruecke wie z.B. '../' bei den hier implementierten |
|
37 |
* Dateioperationen verarbeiten zu koennen. |
|
38 |
* |
|
39 |
* <b>Programme, die diese Klassenbibliothek einsetzen, muessen eigene Massnahmen gegen |
|
40 |
* Path Traversal o.ä. beisteuern, sofern dies nicht gewuenscht ist.</b> |
|
41 |
* |
8bde6f
|
42 |
* <p>Die folgenden Funktionalitaeten sind in dieser Auspraegung einer |
U |
43 |
* Dateiverwaltung fest angelegt. Sie sind damit Kandidaten fuer eine |
|
44 |
* Erweiterung dieser Klassenbibliothek um andere evtl. benoetigte |
|
45 |
* Auspraegungen.</p> |
|
46 |
* |
1b9e9c
|
47 |
* <p><b>Handhabung von Bilddateien</b></p> |
8bde6f
|
48 |
* |
U |
49 |
* Neben der Datei eines Bildes in Originalgroesse werden weitere Dateien als Varianten |
|
50 |
* eines Bildes unterstuetzt. |
|
51 |
* |
|
52 |
* In Dateilisten werden diese Varianten ausgeblendet und nur das Originalbild gezeigt. |
|
53 |
* |
|
54 |
* Die Dateinamen von Varianten eines Bildes muessen dazu einen mit Unterstrich beginnenden |
|
55 |
* Namenszusatz enthalten wie bspw. <code>_tn</code> fuer thumbnail oder <code>_sm</code> |
|
56 |
* fuer small usw. Gleichsam lassen sich damit Eigenschaften wie zum Beispiel |
|
57 |
* eine Base64-Kodierung kombinieren. Hier waere der Namenszusatz dann eine Kombination |
|
58 |
* aus Groesse und Kodierung wie mit <code>_sm_b64</code>, so dass sich fuer ein Bild stets |
1b9e9c
|
59 |
* eine ganze Gruppe von Dateien ergibt, z.B.: |
8bde6f
|
60 |
* |
U |
61 |
* <pre> |
|
62 |
* bild.jpg |
|
63 |
* bild_sm.jpg |
|
64 |
* bild_sm_b64.jpg |
|
65 |
* </pre> |
|
66 |
* |
|
67 |
* Alle Dateioperationen dieser Klassenbibliothek wirken dennoch stets auf |
|
68 |
* alle Varianten des Bildes, wie es auf der Kommandozeile mit einem Wildcard-Operator |
|
69 |
* gemacht wuerde, z.B. |
|
70 |
* |
|
71 |
* <pre> |
|
72 |
* cp /pfad/zum/bild*.jpg /pfad/zum/zielordner |
|
73 |
* </pre> |
|
74 |
* |
|
75 |
* Eine Dateiliste enthaelt aus diesem Grund fuer Bilddateien die beiden zusaetzlichen Angaben |
|
76 |
* <code>miniurl</code> und <code>imgsrc</code>. |
|
77 |
* |
1b9e9c
|
78 |
* <p><b>Ordnerliste im JSON-Format</b></p> |
8bde6f
|
79 |
* |
U |
80 |
* Die Liste mit Dateien eines Ordners wird im JSON-Format ausgegeben. Ueber eine |
|
81 |
* entsprechende Erweiterung koennte die Ausgabe in verschiedenen waehlbaren Formaten |
|
82 |
* erfolgen. |
|
83 |
* |
bcd08a
|
84 |
*/ |
U |
85 |
package de.uhilger.fm; |