Zipper un dossier

Knux14 Messages postés 19 Statut Membre -  
Knux14 Messages postés 19 Statut Membre -
Bonjour,

J'ai créé un logiciel pour installer des mods à Minecraft. Le logiciel est sensé décompresser un fichier .jar, décompresser un fichier .zip dans le même dossier (en remplaçant) puis recompresser le tout. Tout marche sauf la recompression j'arrive à compresser des fichiers simple mais quand il y a un dossier dedans, le .zip créé est illisible (quand il est ouvert avec un logiciel j'ai cette erreur:
7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=fr_FR.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)

Error: /home/knux/NetBeansProjects/MinecraftServerDownloader/fichierzip.zip: Can not open file as archive

Errors: 1

Voici mon code:
public static int buffer = 10240;

    public void zip(final File zipFile, final File[] listFiles, final JProgressBar bar)
{
    bar.setIndeterminate(true);
    
    new Thread()
    {
        @Override
        public void run()
        {
            bar.setIndeterminate(false);
             bar.setMaximum(listFiles.length);
            try {
                byte b[] = new byte[buffer];
                FileOutputStream fout = new FileOutputStream(zipFile);
                ZipOutputStream out = new ZipOutputStream(fout);
                for (int i = 0; i < listFiles.length; i++) {
                  bar.setValue(bar.getValue() + i);
                    if (listFiles[i] == null || !listFiles[i].exists()|| listFiles[i].isDirectory())
                        System.out.println();
                    ZipEntry addFiles = new ZipEntry(listFiles[i].getName());
                    addFiles.setTime(listFiles[i].lastModified());
                    out.putNextEntry(addFiles);
                    FileInputStream fin = new FileInputStream(listFiles[i]);
                    while (true) {
                        int len = fin.read(b, 0, b.length);
                        if (len <= 0)
                            break;
                        out.write(b, 0, len);
                    }
                    fin.close();
                }
                out.close();
                fout.close();
                System.out.println("Zip File is created successfully.");
            } catch (Exception ex) {}
        }
    }.start();
        
}
et le code du bouton est :
        File zip = new File("fichierzip.zip");
        File folder = new File("Folder");
        if(!folder.exists())
            folder.mkdir();
        zip(zip, folder.listFiles(), jProgressBar1);


Merci d'avance, Cordialement, Knux14

3 réponses

Knux14 Messages postés 19 Statut Membre 1
 
Up siouplait
0
Freedomsoul Messages postés 538 Statut Membre 97
 
c'est bien d'avoir voulu gérer les erreur avec ton
 catch (Exception ex) {}
mais dans ton cas, ça t'embête plus qu'autre chose vu que tu n'as rien qui s'affiche si y'a une erreur lors de la création de l'archive, non ?

as tu bien la phrasede fin qui confirme la création de ton zip ?
0
Knux14 Messages postés 19 Statut Membre 1
 
Merci mais j'ai trouvé en cherchant "compression zip récursive java"
0