Compression

Résolu
isdine Messages postés 15 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 8 janvier 2005 - 26 août 2004 à 12:05
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 - 27 août 2004 à 11:51
Bonjour
je suis entrain de developper une application en java et j'ai besoin de zipper un dossier avec ses sous-dossier et là c'est coince. J'ai grand besoin d'aide
Merci d'avance

10 réponses

wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
27 août 2004 à 11:51
tu fais:

void createZip(String pathSource,File zipsortie){
-> creation du zip
addDirToZip(pathSource,pathSource,outputZip);
}

void addDirToZip(String root,String path,ZipOutputStream os){
pour chaque File f de path{
si f est un fichier, l'ajouter a os (chemin relatif a calculer avec root)
si f est un repertoire appel de addDirToZip(root,f,os);
}
}
3
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
26 août 2004 à 13:38
:big) Neodante :big)

Bah regarde les exemples de SUN ou dans le guide de la doc de Java sinon au pire regarde dans la javadoc même ... c'est pas bien compliqué ...
@+

[Responsable www.neogamedev.com]
0
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
26 août 2004 à 14:11
fait deja un ptit quelque chose puis si t'es coincé explique ce que tu comprend pas.
0
isdine Messages postés 15 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 8 janvier 2005
26 août 2004 à 14:36
public void zipcenter(String pathSource,String PathDestination,String Fichier) throws Exception
try {
BufferedInputStream origin = null;
FileOutputStream dest = new FileOutputStream(PathDestination+Fichier);
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest));
//out.setMethod(ZipOutputStream.DEFLATED);
byte data[] = new byte[BUFFER];
// get a list of files from current directory
File f = new File(pathSource);
String files[] = f.list();

for (int i=0; i<files.length; i++) {
//System.out.println("Adding: "+files[i]);
FileInputStream fi = new
FileInputStream(pathSource+files[i]);
origin = new
BufferedInputStream(fi, BUFFER);
ZipEntry entry = new ZipEntry(files[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();
}

avec ca je me parviens qu'à compresser le contenu d'un dossier pas les sous-dossier
Help please
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
26 août 2004 à 15:32
t'oublie un truc genre

dans :for (File f:files){

if f.isDirectory(){
zipCenter(files.path,....);
}

}
0
isdine Messages postés 15 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 8 janvier 2005
26 août 2004 à 16:32
t'oublie un truc genre

dans :for (File f:files){

if f.isDirectory(){
zipCenter(files.path,....);
}

}

tu peux preciser stp ?
0
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
26 août 2004 à 16:40
bien dans ta boucle de fichier, il faut tester si ton fichier est un repertoire ou non. Si c'est un repertoire, il faut chercher ses fils et les inclure dans le zip.
0
isdine Messages postés 15 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 8 janvier 2005
26 août 2004 à 17:12
je te remercie j'y avais deja pensé mais j'ai comme erreur ceci

java.io.FileNotFoundException: C:\eclipse\workspace\iusmanager\test\produits (Accès refusé)
l'acces m'est refuse dans le premier sous dossier
Merci
0
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
27 août 2004 à 10:53
sur quelle ligne l'exception?
0
isdine Messages postés 15 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 8 janvier 2005
27 août 2004 à 11:23
J'ai bien essayer la recurssivité pour la compression mais je n'y parviens pas si kelk'un pouvait m'expliquer ou me dire comment faire se serait vraiment sympa. Je suis à un poil de peter les plombs
0
Rejoignez-nous