En esta ocasión debo comprimir un directorio el cual puedo ingresar por parámetro, o en su defecto se comprimirá el directorio indicado. Además al terminar de comprimir debe moverlo a otra ubicación.
Hasta ahí todo bonito, el detalle es que cuando reviso el directorio comprimido, está el directorio pero no los archivos que contiene en su interior... ¿Qué estoy haciendo mal...? ¿O qué es lo que me falta?
Aquí va lo que tengo de código.
Saludos
Using perl Syntax Highlighting
- #!/usr/bin/perl
- #use strict;
- use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
- my $comprimido = Archive::Zip->new();
- my $directorio = @ARGV[0];
- if ( @ARGV < 1){
- $directorio = "~/Escritorio/"
- }
- #Generar fecha
- my @meses = qw (enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre);
- my @dias = qw(Domingo Lunes Martes Miercoles Jueves Viernes Sabado);
- my($segundos,$minutos,$hora,$diaMes,$mes,$anio,$diaSemana,$diaAnio, $horarioInvierno) = localtime();
- my $anio = 1900 + $anio; #normalizar el año
- my $ahora = "$diaMes".$meses[$mes]."$anio";
- #Fin generar fecha
- #agregamos el directorio a comprimir
- my $dir_member = $comprimido->addDirectory($directorio);
- #se hace un split a la ruta del archivo y se guardan en un arreglo los elementos
- my @dir = split("/",$directorio);
- #le asignamos el nombre de la carpeta o archivo(q seria el ultimo elemento del arreglo)
- #,a una variable, usando pop (pop extrae el ultimo elemento de un arreglo y disminuye el numero de este en 1)
- my $nombre =pop(@dir);
- #a la variable archivo se le asigna el nombre que va a tener el archivo comprimido
- #primero va $nombre, q vendria a ser el nombre del directorio, y al final va $ahora, que es la fecha actual
- my $archivo = $nombre.'_resp_'.$ahora.'.zip';
- #se guarda el archivo comprimido
- unless ($comprimido->writeToFileNamed($archivo) == AZ_OK){
- die 'Error';
- }
- #movemos el archivo comprimido resultante a la carpeta correspondiente (respaldos)
- my $antigua_ubic = $directorio.'_resp_'.$ahora.'.zip';
- print "$antigua_ubic \n";
- my $nueva_ubic = "/home/camilo/respaldos/$archivo";
- print "$nueva_ubic \n";
- rename $antigua_ubic,$nueva_ubic;
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4