begin process at 2008 07 05 13:29:58
1 205 182 membres
158 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Histoire de fichier zip [ Algorithme / Compression, Split et Cryptage ] (florenth)

Histoire de fichier zip le 12/06/2007 21:17:49

florenth
Membre Club
Salut à tous !

Après les exams, un peu de coding ne fait pas de mal, non ?
Bon.

Alors, parlons de fichiers zip. Imaginez que vous avez une belle archive zipée contenant des fichiers et des répertoires (qui contiennent évidemment des fichiers).
Je souhaite pouvoir obtenir la liste de ces fichiers puis pouvoir en décompresser un qui m'intéresse. Je fais ensuite mon chmilblic dessus et le le rezippe en remplaçant l'orignal.

Ca parait drôlement simple. Et bien, j'ai beau chercher, je ne trouve pas comment obtenir la liste des fichiers d'un zip et encore moins ceux contenus dans les sous sous répertoires !

Je suis allé voir wotsit.com pour aller en chasse d'infos sur ce format mais c'est assez dense et complexe comme système. Je me dis qu'il y a surement une façon "simple" (je mets des guillemets) pour y parvenir.

Et c'est là que j'aimerais que vous interveniez, vous, âmes éclairées. Y'a t-il une librairie à préférer, un truc tout fait (car ce qui est fait, ...) ? J'ai la ZLib. f0xi n'a pas l'air de l'apprécier tellement...

Merci d'avance,
Flo

Re : Histoire de fichier zip le 12/06/2007 23:56:52

Caribensila
Membre Club

Salut,
(Et c'était bien, les exams? :)))
Ce que tu veux faire doit être possible puisque WinZip 8.1 y arrive.
Mais, sur wotsit.com, tu n'as que WinZip 6.3 de commenté...

De toute façon, je ne comprends pas bien ton problème car tu seras bien obligé de tout décompresser si tu veux re-compresser après changement, non?

Une âme en peine, obscure et vile.


Re : Histoire de fichier zip le 13/06/2007 04:42:14

f0xi
Membre Club
(Admin CS)
???

mais mais ... j'aime la ZLib!
bon basiquement, pour les fichier Zip il faudrat un peu plus que la ZLib ...
mais elle est niquouelle cette api, je l'utilise quand je veux un format de fichier qui tiens pas de place (voir ma source HROT etc).

J'ai du la critiquer une fois, parce que j'avais du recuperer un vieux header pourris et mal foutus. mais maintenant avec la ZLibEx, je suis tranquillou, ça fonctionne nickel.

sinon, tu as des compo existant (DelphiZip par exemple) payant, free, plus ou moins bien foutus, plus ou moins bien compatible.
Sinon tu peu toujours essayer de trouver le Header du support Zip dans le sdk de XP. doit bien y'avoir cela quelque part.

http://www.example-code.com/delphi/zip.asp
http://www.example-code.com/delphi/delphi-list-zip.asp
http://www.delphizip.org/
http://www.delphipages.com/skunkworks/swcompress.html





Re : Histoire de fichier zip le 13/06/2007 10:48:35

florenth
Membre Club
@Cari:
et justement non ! Avec 7-zip, je peux décompresser un seul fichier puis le modifier et enfin le remplacer sans tout devoir recompresser. C'est drôlement utile ce truc quand ton archive est assez grosse (genre 20 Mo) car pour décompresser ça va vite, mais dans l'autre sens.... pffffouuuu qu'est ce que ça rame !

@f0xi: tant mieux si tu l'aimes bien cette API. En effet, une fois on parlait de png, et tu avais critiqué ses headers pourris.

Je regardes tes exemples, mais apparemment ça utilise plein de compos exotiques. Et j'aime pas les compos exotiques. Je ne télécharge que les librairies *fiables* (ex: JVCL, Indy, ZLib^^, GraphicEx) mais pas ces p'tits compos qui la plupart du temps comportent des bugs que seul le type qui l'a écrit est capable de trouver la source...

Je vous avertirai lorsque j'aurais avancé dans mes recherches (ça sent la source à plein nez...)


Re : Histoire de fichier zip le 13/06/2007 19:30:34

florenth
Membre Club
Alors, quelques heures de recherches et d'expérimentation plus tard: je corrige le propose de f0xi. "pour les fichier Zip il faudrat un peu beaucoup plus que la ZLib"

Car en fait c'est drôlement compliqué ! Et pour couronner le tout, les tailles de fichiers peuvent être soit en Cardinal soit en Int64 suivant un flag bien défini qui varie selon les fichiers !!!! Pas simple tout ça...

J'ai encore du mal à lister les fichiers du .zip: j'arrive pas à savoir comment passer d'n fichier à l'autre.

La doc dit cela mais j'y comprend rien:


  Files stored in arbitrary order.  Large .ZIP files can span multiple
  volumes or be split into user-defined segment sizes. All values
  are stored in little-endian byte order unless otherwise specified.

  Overall .ZIP file format:

    [local file header 1]
    [file data 1]
    [data descriptor 1]
    .
    .
    .
    [local file header n]
    [file data n]
    [data descriptor n]
    [archive decryption header]
    [archive extra data record]
    [central directory]
    [zip64 end of central directory record]
    [zip64 end of central directory locator]
    [end of central directory record]


  A.  Local file header:

        local file header signature     4 bytes  (0x04034b50)
        version needed to extract       2 bytes
        general purpose bit flag        2 bytes
        compression method              2 bytes
        last mod file time              2 bytes
        last mod file date              2 bytes
        crc-32                          4 bytes
        compressed size                 4 bytes
        uncompressed size               4 bytes
        file name length                2 bytes
        extra field length              2 bytes

        file name (variable size)
        extra field (variable size)

  B.  File data

      Immediately following the local header for a file
      is the compressed or stored data for the file.
      The series of [local file header][file data][data
      descriptor] repeats for each file in the .ZIP archive.

  C.  Data descriptor:

        crc-32                          4 bytes
        compressed size                 4 bytes
        uncompressed size               4 bytes

      This descriptor exists only if bit 3 of the general
      purpose bit flag is set (see below).  It is byte aligned
      and immediately follows the last byte of compressed data.
      This descriptor is used only when it was not possible to
      seek in the output .ZIP file, e.g., when the output .ZIP file
      was standard output or a non-seekable device.  For ZIP64(tm) format
      archives, the compressed and uncompressed sizes are 8 bytes each.

      When compressing files, compressed and uncompressed sizes
      should be stored in ZIP64 format (as 8 byte values) when a
      files size exceeds 0xFFFFFFFF.   However ZIP64 format may be
      used regardless of the size of a file.  When extracting, if
      the zip64 extended information extra field is present for
      the file the compressed and uncompressed sizes will be 8
      byte values.  

      Although not originally assigned a signature, the value
      0x08074b50 has commonly been adopted as a signature value
      for the data descriptor record.  Implementers should be
      aware that ZIP files may be encountered with or without this
      signature marking data descriptors and should account for
      either case when reading ZIP files to ensure compatibility.
      When writing ZIP files, it is recommended to include the
      signature value marking the data descriptor record.  When
      the signature is used, the fields currently defined for
      the data descriptor record will immediately follow the
      signature.


lol

A++

Re : Histoire de fichier zip le 13/06/2007 20:53:59

Francky23012301
Membre Club
Réponse acceptée !
Salut Flo,

Et ca dis quoi avec les composants TurboPower Abbrevia ? Ces composants sont OpenSource, il me semble : donc ca devrait répondre à tes intéroggations.

@+



Re : Histoire de fichier zip le 13/06/2007 21:40:44

florenth
Membre Club
Ah oui, j'avais occulté cette piste. Je vais voir ce que cela donne même si ces composants sont plutôt vieux (2003) et les fichiers que je veux ouvrir récents...

Je t'en dirais des nouvelles.

++

Re : Histoire de fichier zip le 15/06/2007 05:52:58

f0xi
Membre Club
(Admin CS)
Réponse acceptée !


regarde quand meme ici :

http://www.delphizip.org/

et ça :

http://www.delphizip.org/179/zmstr1790710.zip

Re : Histoire de fichier zip le 15/06/2007 09:34:38

florenth
Membre Club
Super ça marche !
Ces liens f0xi je les avais déjà visités mais vu la description donnée sur le site, j'avais pas compris le rôle de cette librairie.

@Francky: les compos Turbo fonctionnent aussi. c'est pas des plus simples à utiliser je trouve mais ça fera l'affaire.

Merci à vous !



Re : Histoire de fichier zip le 15/06/2007 17:52:03

cantador
Membre Club
jette un oeil aussi à ZIPFORGE
très simple d'utilisation

cantador


[Page 1 Page 2]
Classé sous : fichier, fichiers, répertoires, histoire, zip

Participer à cet échange

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Redaction texte pour s...
Budget : 180€
Travail graphique- ill...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS