Estoy intentando comprimir los archivos de un directorio, que tengan una extensión determinada, en un archivo tipo "gz" (también me valdría la extension Zip u otra).
Decidí usar el módulo Compress::Zlib para lograrlo, pero resulta que en vez de crearme un archivo comprimido, lo que hace es juntarme esos archivos en uno sólo (lo que necesito es poder tener los archivos comprimidos pero manteniendo su integridad individual, lo que es un "zip" de toda la vida).
En fin, aquí os dejo el código por si me podéis ayudar a conseguir mi objetivo modificando algo.
Using perl Syntax Highlighting
- #!c:/perl/bin/perl.exe -w
- use strict;
- use Compress::Zlib;
- print "Enter your directory path\:\n"; #directorio donde estan los archivos
- chomp( my $path = <STDIN> );
- chdir $path or die "ERROR: Unable to enter $path: $!\n";
- opendir( TEMP, "." );
- my @files = readdir(TEMP);
- closedir TEMP;
- print "Enter your file type to join\:\n"; #Tipo archivos a comprimir
- chomp( my $tipo = <STDIN> );
- open SALIDA, ">Zipped.gz" || die("can´t open out file");
- for my $file (@files) {
- if ( $file =~ /\.$tipo/ ) {
- my $buffer;
- my $gz = gzopen( $file, "rb" ) or die "Cannot open $file: $gzerrno\n";
- print SALIDA "$buffer" while $gz->gzread($buffer) > 0;
- die "Error reading from $file: $gzerrno" . ( $gzerrno + 0 ) . "\n" if $gzerrno != Z_STREAM_END;
- $gz->gzclose();
- }
- }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Gracias por adelantado.