IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Compression d'un répertoire


Sujet :

Développement Web en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 164
    Par défaut Compression d'un répertoire
    Bonjour,

    j'essai de compresser un repertoire mais mon .zip reste vide...

    voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    public void compresser (File file,String strDest) throws Exception{
    		ArrayList<String> liste = new ArrayList<String>();
     
    		this.listerFichier(file, liste);
     
    		// taille de tampon
    		final int BUFFER = 2048;
    		byte data[] = new byte[BUFFER];
     
    		//flux d'écriture  (archive)
    		FileOutputStream dest = new FileOutputStream(strDest);
    	//	FileInputStream dest2 = new FileInputStream(strDest);
    		// buffer de sorti
    		BufferedOutputStream buff = new BufferedOutputStream(dest);
    	//	Buff
    		//flux d'écriture
    		ZipOutputStream out = new ZipOutputStream(buff);
    		out.setMethod(ZipOutputStream.DEFLATED); // methode de compression
    		out.setLevel(9); // niveau de compression
    		byte[] buf = new byte[1024];
     
     
    		int taille = liste.size();
    		for (int i  = 0 ; i< taille ; i++ ){
    			// on recupère le fichier
    			System.out.println(liste.get(i));
    			FileInputStream  fi =  new FileInputStream(liste.get(i));
     
    			//buffer d'entree
    //			BufferedInputStream buffi = new BufferedInputStream(fi, BUFFER);
    //			
    			//creation d'une entree zip
    			ZipEntry entry = new ZipEntry(liste.get(i));
     
    			// affectation de l'entree au flux de sortie
    			out.putNextEntry(entry);
     
    			//Écriture des entrées dans le flux de sortie par paquet de taille
    			//égale aux tampons d’entrée et de sortie
    			int count;
    //			while((count = buffi.read(data, 0, BUFFER)) != -1) {
    //			out.write(data, 0, count);
    //			}
     
    			int len;
    	        while ((len = fi.read(buf)) > 0) {
    	            out.write(buf, 0, len);
    	        }
     
     
    			//fermeture de l'entree en cours et du flux 
    			out.closeEntry();
    			fi.close();
     
     
    		}
     
    	//	out.close();
     
    	}
    ma methode qui liste les fichiers du dossier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
     
    public void listerFichier(File file,ArrayList liste){
     
     
    		// si c'est un répertoire
    		if (file.isDirectory()){
     
    			// on liste les sous dossier et fichier qu'il contient
    			File[] files = file.listFiles();
     
    			// si non vide
    			if (files!=null){
    				int taille= files.length;
     
    				for (int i = 0; i< taille ; i++){
    					// on regarde si c'est un repertoire
    					if (files[i].isDirectory()){
    						this.listerFichier(files[i],liste);
    					}
    					else
    						// on ajoute a la liste des fichiers
    						liste.add(files[i].getAbsolutePath());
     
    				}
    			}
    		}
    		else
    			//on ajoute a la liste des fichiers
    			liste.add(file.getAbsolutePath());
     
    	}
    quelqu'un peut me dire ce qui va pas??

    merci

  2. #2
    Membre confirmé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 164
    Par défaut
    Bon j'ai resolu mon probleme

    en fait

    if fallait juste mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    buffi.close();
    // fi.close(); out.closeEntry();    <--- non
     
    }
    out.close();
    Par contre maintenant, quand je veux ajouter dans une archive qui existe deja, ca me supprime ce qu'il y avait dedans avant (et pas completement, il y a des fichiers qui sont créés je sais pas d'ou ca sort.)
    Est-ce qu'il y a un moyen pour AJOUTER à l'archive sans effacer?

    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compresser chaque sous-répertoires en archive.
    Par Sivenruot dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 04/08/2014, 21h31
  2. Compresser tout un répertoire dans un fichier ZIP..
    Par koma777 dans le forum Langage
    Réponses: 1
    Dernier message: 18/05/2010, 15h09
  3. Compression de répertoire
    Par pi100 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/07/2007, 16h32
  4. zlib compression de répertoires
    Par pada51 dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 26/06/2007, 09h30
  5. [VBS] Compresser un répertoire ou un fichier en vbs
    Par Edoxituz dans le forum VBScript
    Réponses: 2
    Dernier message: 28/02/2006, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo