[Java] Compresser dossier et sous dossier ?

Fermé
SoGeek Messages postés 183 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 15 janvier 2012 - 31 déc. 2010 à 14:43
 swed - 31 déc. 2010 à 15:49
Bonjour à tous :) !

Je requière votre aide pour un problème de compression de dossier en Java.

Je vous explique mon problème :

Avec mon logiciel, je crée à la fin un répertoire, appelons le "folder" (qui par la suite sera upload sur un ftp) contenant des sous dossiers qui eux mêmes contiennent des fichiers, mais le problème, c'est que je n'arrive pas à compresser "Folder" avec les sous dossiers qu'il contient.

C'est pourquoi je vous demande un lien, une méthode, un code source, m'aidant à réaliser ceci, c'est à dire compresser un dossier avec ses sous-dossiers et ses fichiers en un seul ZIP.

Cordialement,
SoGeek.
PS : Bonne journée à vous, et merci à l'âme charitable qui m'aidera !


A voir également:

3 réponses

Bonjour,

Il faut parcourir par toi même via une boucle, les fichiers présents dans ton répertoire, et les sous répertoires.
Tu pourras faire ça facilement en utilisant les fonctions File.list(), File.isDirectory() et la récursivité.

Ensuite, une fois que tu es certain que ta boucle parcours tous les fichiers voulus, tu crées un ZipOutputStream, et pour chaque fichier, tu ajoute une entrée dans le zip :
ZipOutputStream.putEntry(fileName);
ZipOutputStream.write(fileData);
ZipOutputStream.closeEntry();

Cordialement, M.
2
Bonjour,

Il faut utiliser le package java.util.zip, qui permet de lire/écrire des archives zip ;
As-tu essayé ? Si oui, quel problème as-tu rencontré ?

Cordialement, M.
0
SoGeek Messages postés 183 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 15 janvier 2012 18
31 déc. 2010 à 15:21
Salut Swed,

Tout d'abord merci de t'intéresser à ce sujet,
Si non, oui j'ai essayer plusieurs codes trouvés sur Google, en effet, ces derniers me permettent de compresser UN SEUL FICHIER et non pas un dossier avec ses sous-dossiers.

Cordialement,
SoGeek.
0