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

Collection et Stream Java Discussion :

Je souhaite zipper un répertoire de fichiers


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 288
    Par défaut Je souhaite zipper un répertoire de fichiers
    Bonjour,

    J'ai un repertoire de fichiers que j'aimerai zipper:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ......................Repertoire1
    ....................................SousRep1
    ...................................................monfichier1
    ...................................................monfichier2
    ...................................................monfichier3
    ....................................SousRep2
    ...................................................monfichier1
    ...................................................monfichier2
    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
     
    private void zipOutputDirectory(String CHEMIN) {
    	Utilitaires.listDirectoryAtraiter(CHEMIN_WS+File.separator+CHEMIN_REPERTOIRE1);
    		ZipEntry(CHEMIN_WS+File.separator+CHEMIN_REPERTOIRE1);
    		String zipFileName = "Test"+CHEMIN;
    		try {
    			ZipOutputStream zip = new ZipOutputStream(new FileOutputStream(zipFileName));
    			zip.setMethod(ZipOutputStream.DEFLATED);
    			zip.setLevel(Deflater.BEST_COMPRESSION);
    			File dataDirectories = new File("conf"+File.separator+CHEMIN+File.separator+CHEMIN_REPERTOIRE1);
    			String[] listFile = dataDirectories.list();
    			zipDirectory(dataDirectories, zip);
    			zip.close();
    			} catch (FileNotFoundException fileNotFound) {
    				}
    			catch (IOException io) {
    				}	
    		}
     
    	private void zipDirectory(File directory, ZipOutputStream zip) {
    		String[] listFile = directory.list();
    		for (int i = 0; i < listFile.length; i++) {
    		try {
    		File file = new File(directory.getPath()+File.separator+listFile[i]);
    		if (file.isDirectory()) zipDirectory(file, zip);
    		else {
    		FileInputStream in = new FileInputStream(file);
    		byte[] bytes = new byte[in.available()];
    		in.read(bytes);
    		in.close();
     
    		ZipEntry entry = new ZipEntry(file.getPath());
    		entry.setTime(file.lastModified());
    		zip.putNextEntry(entry);
    		zip.write(bytes);
    		zip.closeEntry();
    		}
    		} catch (FileNotFoundException fileNotFound) {}
    		catch (IOException io) {}
    		}
    		}
    J'ai un fichier crée avec le nom TestService où service est le "CHEMIN". Ce fichier n'est pa sun fichier zip. Il n'a tout simplement pas d'extension. Et il se trouve au même niveau que le repertoire /conf ( en rouge dans le code )

    Quelqu'un aurait-il une idée svp?
    Merci
    Merci de lire les règles du forum et surtout celle là Message clair et précis.
    Evitons les ctrl c ctrl v => Ne sortons pas les codes de leur contexte sinon ça ne marche pas.

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 288
    Par défaut
    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
     
    private void zipOutputDirectory(String CHEMIN) {
     
    Utilitaires.listDirectoryAtraiter(CHEMIN_WS+File.separator+CHEMIN_REPERTOIRE1);
    		ZipEntry(CHEMIN_WS+File.separator+CHEMIN_REPERTOIRE1);
    		String zipFileName = "Test"+CHEMIN;
    	try {
    		ZipOutputStream zip = new ZipOutputStream(new FileOutputStream(zipFileName));
    			zip.setMethod(ZipOutputStream.DEFLATED);
    			zip.setLevel(Deflater.BEST_COMPRESSION);
    			File dataDirectories = new File("conf"+File.separator+CHEMIN+File.separator+CHEMIN_REPERTOIRE1);
    			String[] listFile = dataDirectories.list();
    			zipDirectory(dataDirectories, zip);
    			zip.close();
    			} catch (FileNotFoundException fileNotFound) {
    				}
    			catch (IOException io) {
    				}	
    		}
    J'ai vu mon erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String zipFileName = "conf"+File.separator+CHEMIN+File.separator+"Test"+CHEMIN+".zip";
    Le nom doit porter l'extension ".zip" et son chemin doit aussi être spécifié. sinon le fichier est crée dans le répertoire courant.

    Autre problème: lorsque je dézippe mon fichier zippé j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ................conf
    .....................Repertoire1
    ....................................SousRep1
    .................................................monfichier1
    .................................................monfichier2
    .................................................monfichier3
    ....................................SousRep2
    .................................................monfichier2
    .................................................monfichier3
     où Transmettre reperésente la chaine qui correspond à "CHEMIN.
    Comment faire pour avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ....................Repertoire1
    ....................................SousRep1
    .................................................monfichier1
    .................................................monfichier2
    .................................................monfichier3
    ....................................SousRep2
    .................................................monfichier2
    .................................................monfichier3
    Merci
    Merci de lire les règles du forum et surtout celle là Message clair et précis.
    Evitons les ctrl c ctrl v => Ne sortons pas les codes de leur contexte sinon ça ne marche pas.

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Novembre 2004
    Messages : 129
    Par défaut Demande de précisions
    j'aimerais savoir l'opération que réalise la méthode listDirectoryAtraiter de la classe Utilitaires, ainsi que la signification des constantes CHEMIN_WS et CHEMIN_REPERTOIRE1. Ca m'aiderait pour tester ma solution avant de te la proposer...

    EDIT : Autre question, qu'est-ce que tu entends par :
    "
    où Transmettre reperésente la chaine qui correspond à "CHEMIN.
    "

    Cordialement,

    Teocali

Discussions similaires

  1. [VBA Excel] Recupérer le répertoire du fichier .xls courrant
    Par greg2 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 16/02/2015, 17h58
  2. [C#] Répertoires et fichiers
    Par cahls dans le forum Windows Forms
    Réponses: 4
    Dernier message: 20/10/2006, 13h32
  3. [zipfile] zipper un répertoire complet
    Par mcdonald dans le forum Général Python
    Réponses: 1
    Dernier message: 21/05/2006, 19h15
  4. [C#] Suppresion de répertoire avec fichiers read-only
    Par aeled dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/05/2006, 17h25
  5. Comment changer le répertoire des fichiers temporaires ?
    Par devdev dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 01/09/2004, 14h18

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