J(de)compression v4 beta

Soyez le premier à donner votre avis sur cette source.

Vue 4 665 fois - Téléchargée 541 fois

Description

C'est un programme qui fait plus ou moins la même chose que Winrar mais avec java.
Sans faire de la pub, le programme utilise le "KIT DE FICHIERS DE PROGRAMMATION", que j'ai aussi fait, ce qui permet de réutiliser facilement certains fichiers du programme. C'est normal si certains fichier de ce programme sont plus récent que ceux du Kit (je ne sais pas tout mettre à jour, au le jour le jour...).

On peut:
- Compresser et décompresser des fichiers (zip).
- Afficher le contenu d'un zip.
- On peut choisir de taux de compression, le lieu où compresser, ...

Avantage comparé à d'autre type de programme:
- Celui-ci peut "décompresser" les dossiers, ce que beaucoup d'autres programmes ne savent pas faire.

Il y a encore quelque bugs à corriger, il faut que je le fasse, mais bon...

Source / Exemple :


Source du 1er fichier lors du lancement du programme:

   import java.util.Scanner;
   import java.util.ArrayList;

   import java.awt.Container;
   import java.awt.FlowLayout;
   import java.awt.event.ActionListener;
   import java.awt.event.ActionEvent;
   import java.awt.event.WindowAdapter;
   import java.awt.event.WindowEvent;

   import javax.swing.JFrame;
   import javax.swing.JTextArea;
   import javax.swing.JScrollPane;
   import javax.swing.JTextField;
   import javax.swing.JButton;
   import javax.swing.JLabel;
   import javax.swing.JFileChooser;

    public class JDeCompression extends JFrame implements ActionListener{
   
      JTextArea txt;
      JScrollPane	barre= new JScrollPane();
   
   	//Le nom du fichier ou, où il se trouve:
      static JTextField lieu;
      
      JButton vers,
              ajouter,
      		  decompresser,
      		  compresser,
      		  compression,
      		  contenu_zip;
   
      JDialog jd= new JDialog();
   
      int compression_nb= 0;
   
       public JDeCompression(){
      
      //Caractéristiques de la fenettre:
         setTitle("J(De)Compression - Version: 4");
         //Largeur, hauteur:
         setSize(370, 290);
         setResizable(false);
       
         setLocationRelativeTo(null);
      
         setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
      
         addWindowListener(
                new WindowAdapter(){
                   public void windowClosing(WindowEvent e){
                     System.exit(0);
                  }
               });
      
         Container contenu= getContentPane();
         contenu.setLayout(new FlowLayout());
      
      //Là où l'utilisateur met son txt:
         //Hauteur, largeur:
         txt= new JTextArea(10, 30);
         //txt.setLineWrap(true);
         txt.setToolTipText("Le nom des fichiers à compreser ou à décompresser");
         txt.setEditable(true);
      
         barre= new JScrollPane(txt, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
         barre.setAutoscrolls(true);
      
      //L'endroit où on donne le nom du fichier:
         lieu= new JTextField(22);
         lieu.setToolTipText("<html><p>Le lieu où se trouvera ton fichier,</p><p>et ou son nom.</p></html>");
         lieu.setEditable(true);
      
      //Le boutton 'Decompresser':
         decompresser= new JButton("Decompresser");
         decompresser.setToolTipText("Decompresser tout les fichiers séléctionné.");
         decompresser.addActionListener(this);
      
      //Le boutton 'Compresser':
         compresser= new JButton("Compresser");
         compresser.setToolTipText("Compresser tout les fichiers séléctionné.");
         compresser.addActionListener(this);
      
      //Le boutton 'Ajouter':
         ajouter= new JButton("Ajouter");
         ajouter.setToolTipText("Ajouter un élément à la compression/decompression.");
         ajouter.addActionListener(this);
      
      //Le boutton 'Vers':
         vers= new JButton("...");
         vers.setToolTipText("Donner un nom de repertoire ou un nom de fichier.");
         vers.addActionListener(this);
      
      //Le boutton 'Compression x':
         compression= new JButton("Compression: "+compression_nb);
         compression.setToolTipText("Taux de compression (de 1 à 9)");
         compression.addActionListener(this);
      
      //Le boutton 'Contenu zip':
         contenu_zip= new JButton("Contenu zip");
         contenu_zip.setToolTipText("Voir le contenu d'un zip");
         contenu_zip.addActionListener(this);
      
      //On affiche les éléments:
         add(barre);
         contenu.add(new JLabel("Lieu: "));
         contenu.add(lieu);
         contenu.add(vers);
         contenu.add(ajouter);
         contenu.add(compresser);
         contenu.add(decompresser);
         contenu.add(compression);
         contenu.add(contenu_zip);
      }
   
    //S'il y a une action quelqu'on que:
       public void actionPerformed(ActionEvent e){
         if(e.getSource() == compresser)
            if(!"".equals(txt.getText()) && txt.getText() != null){
               System.out.println("On compresse:\n"+txt.getText());
               Scanner sc= new Scanner(txt.getText());
            
               Fichier f= new Fichier();
            
               ArrayList l= new ArrayList();
            
               while(sc.hasNext())
                  l.add(sc.nextLine());
            
               if(!"".equals(lieu.getText()) && lieu.getText() != null)
                  f.Compresser(l, lieu.getText()+"/", compression_nb);
               else
                  f.Compresser(l, compression_nb);
            
            }
            else
               System.out.println("Il faut que tu donnes des nom de fichiers à compresser ou a decompresser.");
            
         if(e.getSource() == decompresser)
            if(!"".equals(txt.getText()) && txt.getText() != null){
               System.out.println("On decompresse:\n"+txt.getText());
               Scanner sc= new Scanner(txt.getText());
            
               Fichier f= new Fichier();
            
               ArrayList l= new ArrayList();
            
               while(sc.hasNext())
                  l.add(sc.nextLine());
            
               if(!"".equals(lieu.getText()) && lieu.getText() != null)
                  f.Decompresser(l, lieu.getText()+"/");
               else
                  f.Decompresser(l);
            }
            else
               System.out.println("Il faut que tu donnes des nom de fichiers à compresser ou a decompresser.");
      
         if(e.getSource() == ajouter){
            jd.Valeur(false);
            jd.setFileSelectionMode(JFileChooser.FILES_ONLY);
            jd.Chemin(true);
            jd.JDialog();
            if(!"null".equals(jd.Valeur()))
               txt.append(jd.Valeur()+"\n");
         }
      
         if(e.getSource() == vers){
            jd.Valeur(false);
            jd.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
            jd.Chemin(true);
            jd.JDialog();
            if(!"null".equals(jd.Valeur()))
               lieu.setText(jd.Valeur());
         }
      
         if(e.getSource() == compression){
            if(compression_nb++ > 8)
               compression_nb= 0;
         
            compression.setText("Compression: "+compression_nb);
         }
      
         if(e.getSource() == contenu_zip)
            new Contenu_Zip().setVisible(true);
      }
   
       public static void main (String[] args){
         new JDeCompression().setVisible(true);
      }
   
   }

Conclusion :


Ce programme ne se veut pas innovant mais simple et réutilisable.

Les défauts majeur du programme (et à corriger) sont:
- La compréhension du programme: comment on l'utilise, il faut que je fasse un tuto + le proposer dans le programme.
- On ne sait pas "compresser un dossier.
- Il faut ajouter plus de commantaires.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
62
Date d'inscription
samedi 23 décembre 2000
Statut
Membre
Dernière intervention
18 décembre 2011
1
OK, je change ça tout de suite.
Messages postés
123
Date d'inscription
mardi 5 août 2003
Statut
Membre
Dernière intervention
26 août 2012
3
Même chose pour le titre : "WINRAR VERSION JAVA V4 BETA"

Vous risquez d'avoir des problèmes...
Messages postés
123
Date d'inscription
mardi 5 août 2003
Statut
Membre
Dernière intervention
26 août 2012
3
Bonjour,

Winrar est une marque déposée ! Il est donc totalement inapproprié d'utiliser un tel nom pour votre programme qui n'est rien d'autre qu'un utilitaire de compression/décompression de fichiers. C'est comme si vous développiez un tableur et que vous l'appeliez Excel ! Je vous conseillerai donc fortement de changer le nom de votre classe.

@+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.