Bonjour,
J’ai crée une petite applet Java permettant àl’utilisateur de sélectionner les fichiers de son choix sur son disque, et réalisant automatiquement une archive contenant ces mêmes fichiers.
Je me suis pour cela inspiré de la doc de chez Sun qui aborde le sujet : Compressing and Decompressing
Le seul problème, c’est qu’une fois décompressé le .ZIP généré, je me suis aperçu que l’arborescence des fichiers était gardée intacte.
En résumé, j’aimerai qu’une fois décompressé, le .ZIP contienne l’ensemble des fichiers compressés à sa racine.
Cela est-il possible ?
Voilà la méthode en question, largement inspiré de l’exemple de chez SUN :
public void creationZip()
{
int BUFFER = 2048;
try {
BufferedInputStream origin = null;
FileOutputStream dest = new FileOutputStream("ready2send.zip");
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest));
byte data[] = new byte[BUFFER];
for (int i=0; i<cheminsFichiers.length; i++) {
System.out.println("Adding: "+cheminsFichiers[i]);
FileInputStream fi = new FileInputStream(cheminsFichiers[i]);
origin = new BufferedInputStream(fi, BUFFER);
ZipEntry entry = new ZipEntry(cheminsFichiers[i]);
out.putNextEntry(entry);
int count;
while((count = origin.read(data, 0,
BUFFER)) != -1) {
out.write(data, 0, count);
}
origin.close();
}
out.close();
} catch(Exception e) {
e.printStackTrace();
}
}
A noter que c’est le tableau de strings cheminsFichiers qui contient l’ensemble des chemins absolus des fichiers à compresser.
Des idées ?
Merci d’avance
Edité le 04/06/2009 à 11:35