Bon, un peu de code valant mieux qu'un long discours...
Code :
- # Zip archive format
- use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
- .......................
- my $zipfile = Archive::Zip->new();
- my $zipfile_member = $zipfile->addFile( $file, $name.".jpg" );
- $zipfile_member->desiredCompressionMethod( COMPRESSION_STORED );
- my $zipfilename = "archive.zip";
- unless ( ($zipfile->writeToFileNamed( $zipfilename )) == AZ_OK) {
- trace_msg("Error", "Cannot create file $zipfilename" ) and return 0;
- }
|
avec mon exemple:
D'abord on crée l'archive: Archive::Zip->new();
On ajoute des fichiers a l'archive: $zipfile->addFile( $file, $name.".jpg" );
le premier parametre: le fichier a ajouter, et le second, le nom que le fichier aura dans l'archive
Attention, a ce stade, on ne fait que ajouter les infos dans une liste, la compression effective a lieu uniquement quand on sauve l'archive
On peut alors aussi indiquer quel type de compression on desire.
Pour un fichier image deja compressé, utiliser desiredCompressionMethod( COMPRESSION_STORED ); sinon, on aura la compression par defaut.
Bon, on ajoute d'autres fichiers, puis, on sauve l'archive: $zipfile->writeToFileNamed( $zipfilename )
A ce stade, il faut que tous les fichiers ajoutés dans l'archive avec addFile existent, car c'est en fait maintenant que la compression va être effectuée.
Ensuite, si tu veux ajouter le contenu d'un repertoire, etc, il faut, comme te l'indiquais anapajari aller voir du coté de addTree.
A+,
Message édité par gilou le 22-05-2008 à 00:06:07
---------------
There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! --