begin process at 2010 02 10 06:03:45
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > ZIP_FIC -- ARCHIVAGE AU FORMAT ZIP D'UN RÉPERTOIRE

ZIP_FIC -- ARCHIVAGE AU FORMAT ZIP D'UN RÉPERTOIRE


 Information sur la source

Note :
Aucune note
Catégorie :Divers Classé sous :zip, FileInputStream, ZipEntry Niveau :Débutant Date de création :03/02/2009 Vu / téléchargé :2 570 / 81

Auteur : StevosTeen

Ecrire un message privé
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description

Un petit bout de code permettant de créer une archive ZIP à partir de fichiers présents dans un répertoire.
Paramètres du programme:
// . 1 . le repertoire ou se trouve les fichiers    REP_FIC=  obligatoire
// . 2 . le repertoire d'ecriture du zip            REP_ZIP=  
// . 3 . le nom du fichier zip                      NOM_ZIP=  
// . 4 . extension des fichiers a zipper            FIC_OKE=  
// . 5 . extension des fichiers a ne pas zipper     FIC_KOE=  
// . 6 . Zip des fichiers dans les sous repertoires SUB_FLD=(Y defaut, N)
// . 7 . Suppressions des fichiers zippés           DEL_FIC=(N defaut, Y)

Exemple d'execution en ligne de commande:
zip_fic REP_FIC=C:\tmp\01009\ REP_ZIP=C:\temp\ NOM_ZIP=01009.zip SUB_FLD=N DEL_FIC=y FIC_KOE=log01009.tlg

Source

  • //=======================================================================
  • // zip_fic.java
  • //============================== Objet ==================================
  • // Permet de créer une archive zip avec des fichiers contenu dans un
  • // répertoire donné
  • //============================== Parametres =============================
  • // . 1 . le repertoire ou se trouve les fichiers REP_FIC= obligatoire
  • // . 2 . le repertoire d'ecriture du zip REP_ZIP=
  • // . 3 . le nom du fichier zip NOM_ZIP=
  • // . 4 . extension des fichiers a zipper FIC_OKE=
  • // . 5 . extension des fichiers a ne pas zipper FIC_KOE=
  • // . 6 . Zip des fichiers dans les sous repertoires SUB_FLD=(Y defaut, N)
  • // . 7 . Suppressions des fichiers zippés DEL_FIC=(N defaut, Y)
  • //=============================== Commentaires ==========================
  • // Seul le premier paramètre est obligatoire
  • // L'ordre des paramètres n'a aucune importance
  • // Les parametres FIC_OKE et FIC_KOE peuvent être une liste d'éléments
  • // séparés par ":" Les éléments peuvent être des extensions de fichiers
  • // ou des nom de fichiers complets
  • //=======================================================================
  • // 03/07/2008 -- strs -- creation
  • //=======================================================================
  • import java.io.*;
  • import java.util.zip.*;
  • public class zip_fic {
  • static final int BUFFER = 2048;
  • public zip_fic(String pathSource,
  • String PathDestination,
  • String nomFichier,
  • String pattern_ok,
  • String pattern_ko,
  • boolean find_lfd,
  • boolean delete_file) {
  • try {
  • FileOutputStream dest = new FileOutputStream(PathDestination + nomFichier);
  • ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest));
  • add(pathSource, "", pattern_ok, pattern_ko, out, find_lfd,delete_file);
  • out.close();
  • }
  • catch (Exception e) {
  • System.out.println(e.getMessage());
  • }
  • }
  • private void add(String pathSource, String path, String extension_ok, String extension_ko, ZipOutputStream out, boolean bln_sub_fld, boolean supress_fic) {
  • File f = new File(pathSource + path);
  • File files[] = f.listFiles();
  • BufferedInputStream origin = null;
  • byte data[] = new byte[BUFFER];
  • try {
  • for (int i = 0; i < files.length; i++) {
  • //System.out.println("Adding: "+files[i]);
  • if (files[i].isDirectory()) {
  • //System.out.println("Adding: " + files[i].getName());
  • if (bln_sub_fld) {
  • add(pathSource, path + files[i].getName() + "/", extension_ok,extension_ko, out, bln_sub_fld, supress_fic);
  • }
  • }
  • else {
  • boolean bln_archive = false;
  • // On vérifie que le fichier doit être archivé
  • String extension;
  • if ( extension_ok.equals("*")) { bln_archive=true;}
  • java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(extension_ok, ":");
  • while ( tokenizer.hasMoreTokens() && !bln_archive) {
  • extension=tokenizer.nextToken();
  • //System.out.println("1 -- extension=" + extension + " -> " + files[i].getName());
  • if (files[i].getName().endsWith(extension)) { bln_archive=true;}
  • }
  • // Dans le cas ou on prend tous les fichiers (extension_ok="*") on vérifie qu'il n'est pas exclu
  • if ( bln_archive ) {
  • tokenizer = new java.util.StringTokenizer(extension_ko, ":");
  • while ( tokenizer.hasMoreTokens() && bln_archive) {
  • extension=tokenizer.nextToken();
  • //System.out.println("2 -- extension=" + extension );
  • if (files[i].getName().endsWith(extension)) { bln_archive=false; }
  • }
  • }
  • if ( bln_archive ) {
  • System.out.println("AJOUT:: " + pathSource + path + files[i].getName());
  • FileInputStream fi = new FileInputStream(pathSource + path + files[i].getName());
  • origin = new BufferedInputStream(fi, BUFFER);
  • ZipEntry entry = new ZipEntry(path + files[i].getName());
  • out.putNextEntry(entry);
  • int count;
  • while ( (count = origin.read(data, 0, BUFFER)) != -1) {
  • out.write(data, 0, count);
  • }
  • origin.close();
  • if (supress_fic) { files[i].delete(); }
  • }
  • }
  • }
  • }
  • catch (Exception e) {
  • e.printStackTrace();
  • }
  • }
  • public static void main(String[] args) {
  • ///////////////////////////////////////////////////////////
  • // Lecture et contrôle des paramètres
  • ///////////////////////////////////////////////////////////
  • String rep_fic="";
  • String rep_zip="";
  • String nom_zip_dft="";
  • String nom_zip="";
  • String ext_fic_ok="";
  • String ext_fic_ko="";
  • String sub_fld="";
  • String del_fic="";
  • boolean bln_sub_fld =true;
  • boolean bln_sup_fic =false;
  • //System.out.println("AGUMENTS ::: " + args.length);
  • for (int i=0; i<args.length; i++)
  • {
  • //System.out.println(i +" " +args[i]);
  • if ( args[i].substring(0,8).equals("REP_FIC=") )
  • { rep_fic= args[i].substring(8); }
  • if ( args[i].substring(0,8).equals("REP_ZIP=") )
  • { rep_zip= args[i].substring(8); }
  • if ( args[i].substring(0,8).equals("NOM_ZIP=") )
  • { nom_zip= args[i].substring(8); }
  • if ( args[i].substring(0,8).equals("SUB_FLD=") )
  • { sub_fld = args[i].substring(8); }
  • if ( args[i].substring(0,8).equals("FIC_OKE=") )
  • { ext_fic_ok= args[i].substring(8); }
  • if ( args[i].substring(0,8).equals("FIC_KOE=") )
  • { ext_fic_ko= args[i].substring(8); }
  • if ( args[i].substring(0,8).equals("DEL_FIC=") )
  • { del_fic= args[i].substring(8); }
  • }
  • //Le répertoire de recherche est obligatoire
  • if ((rep_fic.equals("")) || (rep_fic==null)) {
  • System.out.println("zip_pck REP_FIC=<repertoire> REP_ZIP=<> NOM_ZIP=<> FIC_OKE=<rlv:RLV:> FIC_KOE=<zip:olb:> SUB_FLD=<y,n> DEL_FIC=<y,n>");
  • System.out.println("le parametre REP_FIC=<repertoire> est obligatoire");
  • System.exit(1);
  • }
  • //On test le répertoire
  • File dir = new File(rep_fic);
  • String[] repertoire = dir.list();
  • if (repertoire == null) {
  • System.out.println(rep_fic + ":: ce répertoire n'existe pas ou n'est pas un répertoire");
  • System.exit(1);
  • } else {
  • nom_zip_dft=dir.getName()+".zip";
  • }
  • //Si le répertoire de destination du zip n'existe pas on le créé dans le répertoire
  • //ou l'on zip les fichiers
  • if ((rep_zip.equals("")) || (rep_zip==null)) { rep_zip=rep_fic; }
  • //Si le nom de l'archive zip n'existe pas on prends le nom du répertoire de zip
  • if ((nom_zip.equals("")) || (nom_zip==null)) { nom_zip=nom_zip_dft; }
  • ext_fic_ko="ZIP:zip:"+ext_fic_ko;
  • if ((ext_fic_ok.equals("")) || (ext_fic_ok==null)) { ext_fic_ok="*"; }
  • if ( (del_fic.equalsIgnoreCase("Y")) || (del_fic.equalsIgnoreCase("O")) )
  • { bln_sup_fic = true;}
  • else
  • { bln_sub_fld = false;}
  • if ( (sub_fld.equals("")) || (sub_fld==null) ||
  • (sub_fld.equalsIgnoreCase("Y")) || (sub_fld.equalsIgnoreCase("O")))
  • { bln_sub_fld = true; }
  • else
  • { bln_sub_fld = false;}
  • System.out.println("Constitution de " + rep_zip+ nom_zip);
  • new zip_fic( rep_fic, rep_zip, nom_zip, ext_fic_ok, ext_fic_ko, bln_sub_fld, bln_sup_fic);
  • }
  • }
//=======================================================================
// zip_fic.java 
//============================== Objet ==================================
// Permet de créer une archive zip avec des fichiers contenu dans un 
// répertoire donné 
//============================== Parametres =============================
// . 1 . le repertoire ou se trouve les fichiers    REP_FIC=  obligatoire
// . 2 . le repertoire d'ecriture du zip            REP_ZIP=  
// . 3 . le nom du fichier zip                      NOM_ZIP=   
// . 4 . extension des fichiers a zipper            FIC_OKE=  
// . 5 . extension des fichiers a ne pas zipper     FIC_KOE=  
// . 6 . Zip des fichiers dans les sous repertoires SUB_FLD=(Y defaut, N) 
// . 7 . Suppressions des fichiers zippés           DEL_FIC=(N defaut, Y) 
//=============================== Commentaires ==========================
// Seul le premier paramètre est obligatoire
// L'ordre des paramètres n'a aucune importance
// Les parametres FIC_OKE et FIC_KOE peuvent être une liste d'éléments 
// séparés par ":" Les éléments peuvent être des extensions de fichiers
// ou des nom de fichiers complets
//=======================================================================
//  03/07/2008 -- strs -- creation    
//=======================================================================


import java.io.*;
import java.util.zip.*;

public class zip_fic {
  
  static final int BUFFER = 2048;
 
  public zip_fic(String pathSource, 
		         String PathDestination, 
		         String nomFichier, 
		         String pattern_ok, 
		         String pattern_ko,
		         boolean find_lfd,
		         boolean delete_file) {
    try {
      FileOutputStream dest = new FileOutputStream(PathDestination + nomFichier);
      ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest));
      add(pathSource, "", pattern_ok, pattern_ko, out, find_lfd,delete_file);
      out.close();
    }
    catch (Exception e) {
      System.out.println(e.getMessage());
    }
  }

  private void add(String pathSource, String path, String extension_ok, String extension_ko, ZipOutputStream out, boolean bln_sub_fld, boolean supress_fic) {
	  
    File f = new File(pathSource + path);
  
    File files[] = f.listFiles();

    BufferedInputStream origin = null;

    byte data[] = new byte[BUFFER];

    try {
      for (int i = 0; i < files.length; i++) {
        //System.out.println("Adding: "+files[i]);
        if (files[i].isDirectory()) {
          //System.out.println("Adding: " + files[i].getName());
          if (bln_sub_fld) {
            add(pathSource, path + files[i].getName() + "/", extension_ok,extension_ko, out, bln_sub_fld, supress_fic);
          }
        }
        else {
        	boolean bln_archive = false;
        	// On vérifie que le fichier doit être archivé
        	String extension;
        	if ( extension_ok.equals("*")) { bln_archive=true;}
            java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(extension_ok, ":");
            while ( tokenizer.hasMoreTokens() && !bln_archive) {
            	extension=tokenizer.nextToken();
            	//System.out.println("1 -- extension=" + extension + " -> " + files[i].getName());
                if (files[i].getName().endsWith(extension)) { bln_archive=true;}                
            }
        	// Dans le cas ou on prend tous les fichiers (extension_ok="*") on vérifie qu'il n'est pas exclu 
            if ( bln_archive ) {
            	tokenizer = new java.util.StringTokenizer(extension_ko, ":");
                while ( tokenizer.hasMoreTokens() && bln_archive) {
                	extension=tokenizer.nextToken();
                	//System.out.println("2 -- extension=" + extension );
                    if (files[i].getName().endsWith(extension)) { bln_archive=false; }                
                }           	
            }

          if (  bln_archive ) {
        	System.out.println("AJOUT:: " + pathSource + path + files[i].getName());
            FileInputStream fi = new FileInputStream(pathSource + path + files[i].getName());
            origin = new BufferedInputStream(fi, BUFFER);
            ZipEntry entry = new ZipEntry(path + files[i].getName());
            out.putNextEntry(entry);
            int count;
            while ( (count = origin.read(data, 0, BUFFER)) != -1) {
              out.write(data, 0, count);
            }
            origin.close();
            if (supress_fic) { files[i].delete(); }
          }
        }
      }
    }
    catch (Exception e) {
      e.printStackTrace();
    }

  }

  public static void main(String[] args) {
  ///////////////////////////////////////////////////////////
  //    Lecture et contrôle des paramètres
  ///////////////////////////////////////////////////////////
  String rep_fic="";
  String rep_zip="";
  String nom_zip_dft="";
  String nom_zip="";
  String ext_fic_ok="";
  String ext_fic_ko="";
  String sub_fld="";
  String del_fic="";
  
  boolean bln_sub_fld =true;
  boolean bln_sup_fic =false;
  
  //System.out.println("AGUMENTS ::: " + args.length);
  for (int i=0; i<args.length; i++) 
  {    
	 //System.out.println(i +"  " +args[i]);      
     if ( args[i].substring(0,8).equals("REP_FIC=") )
     { rep_fic= args[i].substring(8); }
     if ( args[i].substring(0,8).equals("REP_ZIP=") )
     { rep_zip= args[i].substring(8); }
     if ( args[i].substring(0,8).equals("NOM_ZIP=") )
     { nom_zip= args[i].substring(8); }    
     if ( args[i].substring(0,8).equals("SUB_FLD=") )
     { sub_fld = args[i].substring(8); }
     if ( args[i].substring(0,8).equals("FIC_OKE=") )
     { ext_fic_ok= args[i].substring(8); }
     if ( args[i].substring(0,8).equals("FIC_KOE=") )
     { ext_fic_ko= args[i].substring(8); }
     if ( args[i].substring(0,8).equals("DEL_FIC=") )
     { del_fic= args[i].substring(8); }
   }

  
   //Le répertoire de recherche est obligatoire
   if ((rep_fic.equals("")) || (rep_fic==null)) {
        System.out.println("zip_pck  REP_FIC=<repertoire> REP_ZIP=<>  NOM_ZIP=<> FIC_OKE=<rlv:RLV:> FIC_KOE=<zip:olb:> SUB_FLD=<y,n> DEL_FIC=<y,n>");
        System.out.println("le parametre REP_FIC=<repertoire> est obligatoire");
        System.exit(1);
     }
   //On test le répertoire
   File dir = new File(rep_fic);
   String[] repertoire = dir.list();
   if (repertoire == null) {
       System.out.println(rep_fic + ":: ce répertoire n'existe pas ou n'est pas un répertoire");
       System.exit(1);
   }  else {
	   nom_zip_dft=dir.getName()+".zip";
   }
     
    //Si le répertoire de destination du zip n'existe pas on le créé dans le répertoire
    //ou l'on zip les fichiers
    if ((rep_zip.equals("")) || (rep_zip==null)) { rep_zip=rep_fic; }

    //Si le nom de l'archive zip n'existe pas on prends le nom du répertoire de zip
    if ((nom_zip.equals("")) || (nom_zip==null)) { nom_zip=nom_zip_dft; }

    ext_fic_ko="ZIP:zip:"+ext_fic_ko;
    
    if ((ext_fic_ok.equals("")) || (ext_fic_ok==null)) { ext_fic_ok="*"; }
   
   	
   	if ( (del_fic.equalsIgnoreCase("Y")) || (del_fic.equalsIgnoreCase("O")) ) 
     	{  bln_sup_fic = true;}
   	else
   	    {  bln_sub_fld = false;}
   	
   	if ( (sub_fld.equals("")) || (sub_fld==null) ||
      		 (sub_fld.equalsIgnoreCase("Y")) || (sub_fld.equalsIgnoreCase("O"))) 
      	{  bln_sub_fld = true; }
      	else 
      	{  bln_sub_fld = false;}
   	
   	System.out.println("Constitution de " + rep_zip+ nom_zip);	
    new zip_fic( rep_fic, rep_zip, nom_zip, ext_fic_ok, ext_fic_ko, bln_sub_fld, bln_sup_fic);
  }

}

 Conclusion


Rien de bien novateur... mais un exemple supplémentaire qui j'espère aidera d'autres débutants. Les codes que j'ai en tout cas sur ce site m'ont beaucoup aidés! Merci à tous les contributeurs!!!

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   cvt_xls
    •   bin
      • cvt_xls.classTélécharger ce fichier [Réservé aux membres club]11 027 octets
    •   src
    • .classpathTélécharger ce fichier [Réservé aux membres club]345 octets
    • .projectTélécharger ce fichier [Réservé aux membres club]383 octets

Télécharger le zip


 Sources du même auteur

Source avec Zip CVT_XLS // PERMET DE CONVERTIR UN FICHIER CSV EN FICHIER ...
Source avec Zip ARC_NET_BAL // ARCHIVAGE, NETTOYAGE D'UN COMPTE DE MESSAGERI...

 Sources de la même categorie

Source avec Zip Source avec une capture TRADUCTEUR FRANÇAIS --> NERLANDAIS par edouard333
Source avec Zip IA POUR DISCUTER par edouard333
Source avec Zip Source avec une capture JSUBTITLE1.0 par darrylsite
Source avec Zip COMPILATEUR PASCAL par youma85
Source avec Zip CONTENEUR DE COMPOSANT HETEROGENES par mad_charif

 Sources en rapport avec celle ci

NOMBRE D'OCCURENCE D'UNE CHAINE DE CARACTÈRE DANS TOUS LES F... par deadhand
Source avec Zip ZIPPER / DÉZIPPER UN FICHIER, UN DOSSIER par tarzent
Source avec Zip JOURNAL INTIME par sheorogath
Source avec Zip COMPRESSION-DÉCOMPRESSION DE FICHIER par Moyan
Source avec Zip Source avec une capture JZIP ZIP GZIP APPLICATION COMPLÈTE par Hassen Ben Tanfous

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

(archive="applet.zip")et(codebase="downloads") [ par furiedonkey ] Bonjour je monte un site sur le java et j'ai un petit problème,dans mon dossier racine de mon site exemple (mon site) et dans le dossier(mon site) j'a problème d'accent sur les zip [ par doria123 ] Salut,J'ai un petit problème lorsque je zippe des fichiers qui contiennent caractères spéciaux comme les "é" ou les "è".par exemple, pour un fichier q download d'un fichier zip sur un site internet [ par yann.jaunin ] Hello,j'essaye de télécharger un fichier zip qui se trouve sur un site internet. Je suis débutant donc soyez indulgent :-)voici l'erreur que j'aie :un Chemin relatif dans un FileInputStream [ par boyboy ] Salut!J'ai un problème : Je veux accéder à un fichier à partir d'un fileInputStream. Le problème est que j'aimerais lui passer le chemin relatif de ce How to "Splitter un fichier zip généré en java ? " [ par homerosaur ] Salut à tous,je recherche un moyen de splitter un fichier zip que je génère en java.Mille merci d'avance à qui pourrait m'aidertiti jdbc OracleDriver classes111.zip [ par schneider ] J'aurais besoin du fichier classes111.zip pour pouvoir accéder à une base Oracle 7.3.4. Ce fichier étant introuvable sur le net (trop vieux surement), Compression en zip et zw [ par OxN ] Je dois monter une appli en Java me permettant de compresser (et decompresser) des fichiers en zip ou zw.. le problème, c'est que je suis débutant en Zip, servlet, et fichier Excel [ par as634 ] J'ai créé un fichier excel grace à jExcel. Je voudrais insérer ce fichier dans une archive zip qui sera renvoyée par ma servlet.Voici mon code pour la mysql et zip [ par isdine ] Bonjour Comment pourrait on mettre dans une base de donnee un fichier zipper.Merci d'avance PROBLEME DE ZIP [ par gui_llaume1 ] Bonjour &#224; tous,J'explique mon cas.Je cr&#233;e dans une appli swing &#224; un moment un fichier zip &#224; partir d'un tableau de String contenan


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales