Zipeur de fichier 2

Soyez le premier à donner votre avis sur cette source.

Vue 7 355 fois - Téléchargée 393 fois

Description

zipeur de fichier(s) avec arborscence de sous-dossier.

Source / Exemple :


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

public class Zip {

  static final int BUFFER = 2048;

  /**

  • créateur de fichier zip [avec arborescence]
  • @param pathSource String
  • @param PathDestination String
  • @param nomFichier String
  • /
public Zip(String pathSource, String PathDestination, String nomFichier) { try { FileOutputStream dest = new FileOutputStream(PathDestination + nomFichier); ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest)); add(pathSource, "", out); out.close(); } catch (Exception e) { e.printStackTrace(); } } /**
  • parcour de l'arborscence [le path de la racine est "" ]
  • @param pathSource String
  • @param path String
  • @param out ZipOutputStream
  • /
private void add(String pathSource, String path, ZipOutputStream out) { 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].getName()); if (files[i].isDirectory()) { //System.out.println("Adding: " + files[i].getName()); add(pathSource, path + files[i].getName() + "/", out); } else { 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(); } } } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { Zip zip = new Zip( "C:/zip/essai/zip/essai/", "C:/zip/essai/zip/", "essai.zip" ); } }

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
16
Date d'inscription
lundi 29 septembre 2003
Statut
Membre
Dernière intervention
21 novembre 2005

c'est la taille du buffer dans le while, c'est comme ce que sun met comme exemple à:
http://java.sun.com/developer/technicalArticles/Programming/compression/#code2
j'ai repris sans essayer de changer cette valeur.
Messages postés
492
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
25 avril 2007
5
Salut,
c'est interressant moi j'avais fait un dezipeur et j'avais tatonner le zipeur sans y passer le temps vraiment necessaire pour parvenir a un truc qui marche (j'ai touvé que la doc de sun au sujet du zipoutputstream etait plutot obscur...
J'ai une question...
c'est quoi le int BUFFER = 2048 ?

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.