# Leeres Verzeichnis in ein Zipfile einfügen



## reibi (14. Mrz 2011)

Hi

Wie kann ich ein leeres Verzeichnis in ein Zipfile einfügen?


```
FileOutputStream myFOS = new FileOutputStream("test.zip");
            ZipOutputStream myZOS = new ZipOutputStream(new BufferedOutputStream(myFOS));
            myZOS.putNextEntry(new ZipEntry("test/test/"));
            myZOS.close();
```

Das hier geht nämlich nicht

Gruss ;-)


----------



## Simon_Flagg (14. Mrz 2011)

in zip-files kannst du prinzipiell keine leeren ordner machen ...

lg


----------



## reibi (14. Mrz 2011)

Irgendwie kann das mein 7Zip doch!


----------



## Simon_Flagg (14. Mrz 2011)

ka

kommen bei deinem 7zip 7z dateien oder zip dateien raus? vllt. verwendet 7zip andere mechanismen, bei meinem normalen os geht es auf jedenfall nicht (sind dann wahrscheinlich auch die fkts die java verwendet...)

lg


----------



## reibi (14. Mrz 2011)

es geht auch mit anderen zippern ... aber es kommen .zips raus


----------



## SlaterB (14. Mrz 2011)

```
FileOutputStream myFOS = new FileOutputStream("test.zip");
        ZipOutputStream myZOS = new ZipOutputStream(new BufferedOutputStream(myFOS));
        myZOS.putNextEntry(new ZipEntry("test/test/"));
        myZOS.closeEntry(); // sowieso immer nötig
        myZOS.close();
```


----------



## reibi (14. Mrz 2011)

@Slater
Geht auch nicht! Ich hatte das vorher auch schon mal ausprobiert.

das leere Unterverzeichnis wird zur leeren Datei.
Probiers aus

Gruss


----------



## SlaterB (14. Mrz 2011)

das habe ich, wobei ich durch deine Nachfrage bei erneuten Test festgestellt habe, dass bei mir zumindest das closeEntry() doch nicht unbedingt nötig ist,
im Zweifel dessen Funktion nachschlagen,
hier noch ein ausführlicheres Beispiel mit Screenshot,

mehr kann ich nicht beitragen, 
edit:
oder du könntest deine erzeugte Datei noch hochladen (so wie ich),
vielleicht enthält es doch schon Verzeichnisse, jedenfalls für andere interpretiert


```
myZOS.putNextEntry(new ZipEntry("test/test/"));
        myZOS.putNextEntry(new ZipEntry("test2/"));
        myZOS.putNextEntry(new ZipEntry("test3"));
        myZOS.putNextEntry(new ZipEntry("test4.txt"));
```


----------



## reibi (14. Mrz 2011)

Mach das mal mit Windows auf.
Wenn ichs mit 7Zip aufmache dann gehts auch ... mit Windows-BoardZipper aber nicht
Erstell ich das zipFile mit 7Zip, dann zeigt mir der win-board-zipper auch das leere Verz an

Gruss


----------



## slawaweis (14. Mrz 2011)

die sicherste Methode, die auch mit älteren Programmen funktioniert, ist eine leere Datei in jedes leere Verzeichnis zu legen, z.B. "deleteme.txt".

Slawa


----------



## SlaterB (14. Mrz 2011)

@reibi
die Beobachtung kann ich bestätigen, solche Detailinfos könntest du auch gleich posten..

ansonsten kann ich nicht weiterhelfen, die zahlreichen englischen Themen dazu (Suche 'zipoutputstream empty directory')
hast du gewiss auch schon angeschaut ohne die Ergebnisse mitzuteilen (  ), dann muss ich da ja auch nix mehr sagen


----------



## reibi (14. Mrz 2011)

SlaterB hat gesagt.:


> die Beobachtung kann ich bestätigen, solche Detailinfos könntest du auch gleich posten..



Naja, das ist mir auch erst aufgefallen als ichs im 7zip aufgemacht hab ... sorry



SlaterB hat gesagt.:


> die zahlreichen englischen Themen dazu (Suche 'zipoutputstream empty directory')
> hast du gewiss auch schon angeschaut ohne die Ergebnisse mitzuteilen (  ), dann muss ich da ja auch nix mehr sagen


genau, hab ich, ohne Ergebnisse mitzuteilen. Bis eben wusste ich aber noch gar nicht, dass windowsXP anders reagiert als 7zip.

Bis bislang davon ausgegangen, das der ALG nicht so komplex ist, das es Unterschiede gibt.



slawaweis hat gesagt.:


> die sicherste Methode, die auch mit älteren Programmen funktioniert, ist eine leere Datei in jedes leere Verzeichnis zu legen, z.B. "deleteme.txt".
> 
> Slawa


Danke für den Tip  aber das machen wir nicht. Wenn ich meine Festplatte einpacken würde, würde ich unmengen von Müll produzieren.


----------



## SlaterB (14. Mrz 2011)

reibi hat gesagt.:


> Naja, das ist mir auch erst aufgefallen als ichs im 7zip aufgemacht hab ... sorry


dann musst du das anders formulieren:
'aha, aha, danke für deinen grandiosen Beitrag, nun fällt mir aber folgende neue Problemdimension auf: ..'


----------

