B
blume
Gast
Hallo zusammen!
Ich möchte einen Ordner mit nachstehendem Code zippen.
Allerdings ist das erstellte Zip-File leer.
Was hab ich falsch gemacht?
Vielen Dank!
blume
Ich möchte einen Ordner mit nachstehendem Code zippen.
Allerdings ist das erstellte Zip-File leer.
Was hab ich falsch gemacht?
Vielen Dank!
blume
Code:
package mypackage9;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class Class1
{
public Class1()
{
}
//@param dir: Verzeichnis, das gezippt werden soll
//@param zipFileName: Name der zu erstellenden Zip-Datei
public static void createZipFile (String dir, String zipFileName) throws IOException
{
// Buffer zum Auslesen der Dateien.
byte[] buf = new byte[4096];
// Der vollständige Pfad zur zukünftigen Zip-Datei.
String dirFile = dir + zipFileName;
// Die XML-Dateien werden in diese Datei geschrieben.
ZipOutputStream zipOut = new ZipOutputStream( new FileOutputStream(dirFile));
// Das Verzeichnis, dessen Dateien gesichert werden sollen.
File dirZip = new File(dir);
// Alle Dateinamen aus dem Verzeichnis werden in des Array eingelesen.
File [] fileArray = dirZip.listFiles();
String fileName = "";
// Alle Dateien auslesen.
for(int i = 0; i < fileArray.length; i++)
{
// Der Name der Datei wird ermittelt.
fileName = fileArray[i].getAbsolutePath();
System.out.println(fileName);
// Zip-Dateien ignorieren.
if (fileName.endsWith(".zip")) continue;
// Die Datei wird zum Lesen geöffnet.
FileInputStream inFile = new FileInputStream(fileName);
// Info an Zip-Datei: Jetzt kommt neuer Eintrag.
zipOut.putNextEntry(new ZipEntry(fileName));
int len;
// Der Inhalt der Datei wird in die Zip-Datei kopiert.
while ((len = inFile.read(buf)) > 0)
{
zipOut.write(buf, 0, len);
}
inFile.close();
}
// Die Zip-Datei ist erzeugt.
zipOut.close();
}
public static void main(String[] args)
{
try{
createZipFile("K:/Test/Ordner/","export.zip");
}catch (Exception e)
{
e.printStackTrace();
}
}
}