Hallo Gemeinde,
ich habe folgende Probleme,
1. Ich möchte multiple zip files und directory mit dem package java.util.zip.*; zippen z.B : c:\\Programme+c:\\test.txt+c:\\andereVerzeichnis = ausgang.zip oder Dir+Dir+Dateien+Dateien = ausgang.zip. Bis jetzt kann ich nur zippen entweder nur Verzeichnisse oder Dateien, ich kann nicht gemischt machen, Sie können mein Code ansehen unten.
2. Wie kann ich die grösse gezippte Dateien oder Verzeichnissen beschränken auf 700 MB (Split nach Volume and Merge wie winzip)
3. Wie kann ich inkrementielle Verfahren benutzen, dh die alte Dateien oder Verzeichnisse soll aktualisiert werden zum Zweck der Sicherung
Hier ist mein Code in Bezug auf 1. Frage
Zip nur Dateien
Zip nur Verzeichnis
Zip nur sub Verzeichnis
Ich bedanke mich für eure Hilfe, Sie können auch die Lösung per E-mail schicken an : brusli@excite.com
ich habe folgende Probleme,
1. Ich möchte multiple zip files und directory mit dem package java.util.zip.*; zippen z.B : c:\\Programme+c:\\test.txt+c:\\andereVerzeichnis = ausgang.zip oder Dir+Dir+Dateien+Dateien = ausgang.zip. Bis jetzt kann ich nur zippen entweder nur Verzeichnisse oder Dateien, ich kann nicht gemischt machen, Sie können mein Code ansehen unten.
2. Wie kann ich die grösse gezippte Dateien oder Verzeichnissen beschränken auf 700 MB (Split nach Volume and Merge wie winzip)
3. Wie kann ich inkrementielle Verfahren benutzen, dh die alte Dateien oder Verzeichnisse soll aktualisiert werden zum Zweck der Sicherung
Hier ist mein Code in Bezug auf 1. Frage
Zip nur Dateien
Code:
import java.util.zip.*;
import java.io.*;
public class zip_files
{
public static void main(String[] args) throws IOException
{
File[] all = {new File("C:\\cdrecord.exe"), new File("C:\\mkisofs.exe")};
createZip(new File("c:\\output.zip"),all);
}
public static void createZip(File zipFileName,File[] selected)
{
try
{
byte[] buffer = new byte[1024];
ZipOutputStream out = new ZipOutputStream(new
FileOutputStream(zipFileName));
out.setLevel(Deflater.DEFAULT_COMPRESSION);
for (int i = 0; i < selected.length; i++)
{
FileInputStream in = new FileInputStream(selected[i]);
out.putNextEntry(new ZipEntry(selected[i].getPath()));
int len;
while ((len = in.read(buffer)) > 0)
{
out.write(buffer, 0, len);
}
out.closeEntry();
in.close();
}
out.close();
}
catch (IllegalArgumentException iae)
{
iae.printStackTrace();
}
catch (FileNotFoundException fnfe)
{
fnfe.printStackTrace();
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
}
}
Code:
import java.util.zip.*;
import java.io.*;
public class zip_dir_all
{
public static void main(String[] args) throws IOException
{
String dirpath = "c:\\jtutor";
String ZipName = "c:\\output.zip";
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(ZipName));
zipdirectory(dirpath,zos);
zos.close();
}
public static void zipdirectory(String dirpath, ZipOutputStream zos) throws IOException
{
File f = new File(dirpath);
String[] flist = f.list();
for(int i=0; i<flist.length; i++)
{
File ff = new File(f,flist[i]);
if(ff.isDirectory())
{
zipdirectory(ff.getPath(),zos);
continue;
}
String filepath = ff.getPath();
ZipEntry entries = new ZipEntry(filepath);
zos.putNextEntry(entries);
FileInputStream fis = new FileInputStream(ff);
int buffersize = 1024;
byte[] buffer = new byte[buffersize];
int count;
while((count = fis.read(buffer)) != -1)
{
zos.write(buffer,0,count);
}
fis.close();
}
}
}
Zip nur sub Verzeichnis
Code:
import java.util.zip.*;
import java.io.*;
public class zip_dir
{
public static void main(String[] args) throws IOException
{
File[] alle = {new File("c:\\ftpjakarta")};
String dirpath = "c:\\jtutor";
String ZipName = "c:\\output.zip";
zipdirectory(dirpath,ZipName);
}
public static void zipdirectory(String dirpath, String ZipName) throws IOException
{
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(ZipName));
File f = new File(dirpath);
String[] flist = f.list();
int buffersize = 1024;
byte[] buffer = new byte[buffersize];
int count;
for(int i=0; i<flist.length; i++)
{
File ff = new File(f,flist[i]);
if(ff.isDirectory())
continue;
String filepath = ff.getPath();
ZipEntry entries = new ZipEntry(filepath);
zos.putNextEntry(entries);
FileInputStream fis = new FileInputStream(ff);
while((count = fis.read(buffer)) != -1)
{
zos.write(buffer,0,count);
}
fis.close();
}
zos.close();
}
}