zipeur de fichier(s) avec arborscence de sous-dossier.
Source / Exemple :
import java.io.*;
import java.util.zip.*;
public class Zip {
static final int BUFFER = 2048;
/**
- créateur de fichier zip [avec arborescence]
- @param pathSource String
- @param PathDestination String
- @param nomFichier String
- /
public Zip(String pathSource, String PathDestination, String nomFichier) {
try {
FileOutputStream dest = new FileOutputStream(PathDestination + nomFichier);
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest));
add(pathSource, "", out);
out.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
/**
- parcour de l'arborscence [le path de la racine est "" ]
- @param pathSource String
- @param path String
- @param out ZipOutputStream
- /
private void add(String pathSource, String path, ZipOutputStream out) {
File f = new File(pathSource + path);
File files[] = f.listFiles();
BufferedInputStream origin = null;
byte data[] = new byte[BUFFER];
try {
for (int i = 0; i < files.length; i++) {
//System.out.println("Adding: "+files[i].getName());
if (files[i].isDirectory()) {
//System.out.println("Adding: " + files[i].getName());
add(pathSource, path + files[i].getName() + "/", out);
}
else {
FileInputStream fi = new
FileInputStream(pathSource + path + files[i].getName());
origin = new
BufferedInputStream(fi, BUFFER);
ZipEntry entry = new ZipEntry(path + files[i].getName());
out.putNextEntry(entry);
int count;
while ( (count = origin.read(data, 0, BUFFER)) != -1) {
out.write(data, 0, count);
}
origin.close();
}
}
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Zip zip = new Zip(
"C:/zip/essai/zip/essai/",
"C:/zip/essai/zip/",
"essai.zip"
);
}
}
12 avril 2005 à 12:34
http://java.sun.com/developer/technicalArticles/Programming/compression/#code2
j'ai repris sans essayer de changer cette valeur.
12 avril 2005 à 04:09
c'est interressant moi j'avais fait un dezipeur et j'avais tatonner le zipeur sans y passer le temps vraiment necessaire pour parvenir a un truc qui marche (j'ai touvé que la doc de sun au sujet du zipoutputstream etait plutot obscur...
J'ai une question...
c'est quoi le int BUFFER = 2048 ?
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.