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

Java Discussion :

Dézipper toutes les archives zip d'un répertoire


Sujet :

Java

  1. #1
    Membre confirmé Avatar de Mr.Robot12
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 189
    Par défaut Dézipper toutes les archives zip d'un répertoire
    bonjour,
    j'ai un dossier avec plusieurs archives zip et j'aimerai les dézipper en java.
    pour l'instant j'ai une fonction pour dézipper une archive.
    est-ce que vous pouvez m'aider pour qu'elle dézippe toutes les archives et que les fichiers extraites soient dans des dossiers différentes(nom de dossier = nom de l'archive) ?

    voici ma fonction actuel d'extraction :
    Code JAVA : 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
     
    public void unZipIt(String zipFile, String outputFolder)
        {
            byte[] buffer = new byte[1024];
            try
            {
                ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFile));
                ZipEntry ze = zis.getNextEntry();
                while (ze != null)
                {
                    String fileName = ze.getName();
                    File newFile = new File(outputFolder + File.separator + fileName);
                    System.out.println("file unzip : " + newFile.getAbsoluteFile());
                    if (ze.isDirectory())
                    {
                        String temp = newFile.getCanonicalPath();
                        new File(temp).mkdir();
                    }
                    else
                    {
                        FileOutputStream fos = new FileOutputStream(newFile);
                        int len;
                        while ((len = zis.read(buffer)) > 0)
                        {
                            fos.write(buffer, 0, len);
                        }
                        fos.close();
                    }
                    ze = zis.getNextEntry();
                }
                zis.closeEntry();
                zis.close();
                System.out.println("Extraction complétée");
     
            }
            catch (IOException ex)
            {
                ex.printStackTrace();
            }
        }

    voici l'appel :
    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    this.zip.unZipIt("C:\\Users\\moi\\Desktop\\bilans batch satelit 2016\\sauvegarde_bilans_batch_satelit_2016-01.zip", "C:\\Users\\moi\\Desktop\\bilans batch satelit 2016\\");

  2. #2
    Membre confirmé Avatar de Mr.Robot12
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 189
    Par défaut
    bon j'ai réussi.

    c'est la fonction qui recherche récursivement :
    Code JAVA : 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
     
        private static void findFilesRecursively(File file, Collection<File> all, final String extension)
        {
            // Liste des fichiers correspondant a l'extension souhaitee
            final File[] children = file.listFiles(new FileFilter()
            {
                public boolean accept(File f)
                {
                    return f.getName().endsWith(extension);
                }
            }
                );
            if (children != null)
            {
                // Pour chaque fichier recupere, on appelle a nouveau la methode
                for (File child : children)
                {
                    all.add(child);
                    findFilesRecursively(child, all, extension);
                }
            }
        }

    ça c'est la fonction d'extraction :
    Code JAVA : 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
     
    public void extraireToutZip()
        {
            byte[] buffer = new byte[1024];
     
            try
            {
                final Collection<File> all = new ArrayList<File>();
                findFilesRecursively(new File("C:\\Users\\moi\\Desktop\\bilans batch satelit 2016"), all, ".zip");
     
                for (File file : all)
                {
                    System.out.println(file.getName());
                    ZipInputStream zis = new ZipInputStream(new FileInputStream(file));
                    ZipEntry ze = zis.getNextEntry();
                    while (ze != null)
                    {
                        String fileName = ze.getName();
                        File newFile = new File(file.getParent() + File.separator + fileName);
                        System.out.println("file unzip : " + newFile.getAbsoluteFile());
                        if (ze.isDirectory())
                        {
                            String temp = newFile.getCanonicalPath();
                            new File(temp).mkdir();
                        }
                        else
                        {
                            FileOutputStream fos = new FileOutputStream(newFile);
                            int len;
                            while ((len = zis.read(buffer)) > 0)
                            {
                                fos.write(buffer, 0, len);
                            }
                            fos.close();
                        }
                        ze = zis.getNextEntry();
                    }
                    zis.closeEntry();
                    zis.close();
                    System.out.println("Extraction complétée");
     
                }
            }
            catch (IOException ex)
            {
                ex.printStackTrace();
            }
        }

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

Discussions similaires

  1. Ouvrir les archive zip avec l'explorateur windows
    Par koKoTis dans le forum Windows XP
    Réponses: 2
    Dernier message: 20/08/2006, 23h17
  2. Ouverture de tout les fichiers d'un répertoire
    Par undercrash dans le forum Langage
    Réponses: 18
    Dernier message: 15/06/2006, 09h51
  3. Réponses: 12
    Dernier message: 23/05/2006, 09h58
  4. [MS-DOS] Supprimer tout les sous répertoires contenu dans un
    Par Furius dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 30/11/2005, 12h24

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