Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Comprimir archivos en Perl

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico
Mensaje Lun Jul 14, 2008 3:56 pm
chechoman
Perlero Nuevo
Perlero Nuevo
Registrado: 02 Jul 2008
Mensajes: 19
Comprimir archivos en Perl Responder citando

Hola de nuevo, estoy haciendo un programa que me genera un archivo y como este finalmente pesa mucho necesito comprimirlo y que quede en formato zip, he utilizado la librería Archive::Zip, y el programa me crea el archivo .zip pero no está agregando el archivo que necesito que comprima, es decir, al final me crea un archivo zip ¡¡pero vacío!! Sad , aquí adjunto el código que he escrito para que vean que es lo que está mal:

Perl:
my $resultadoZip = "/home/principal/lector/$fechaFile.zip";

#Nuevo objeto Archive::Zip
my $zipTotal = Archive::Zip->new();

my $archivoComprimir = $zipTotal->addFile($nombreArchivo);

   $zipTotal->writeToFileNamed($resultadoZip);


La variable $nombreArchivo qué es la que me da el nombre de mi archivo a comprimir, también le puse un nombre real y tampoco funcionó.
Mensaje Lun Jul 14, 2008 5:36 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 3823
Ubicación: Valladolid, España
Responder citando

Según la documentación, no debes darle a addFile() un camino absoluto al fichero a comprimir. Prueba a colocarte en el mismo directorio donde está el fichero $nombreArchivo.
Mensaje Mar Jul 15, 2008 7:06 am
chechoman
Perlero Nuevo
Perlero Nuevo
Registrado: 02 Jul 2008
Mensajes: 19
Responder citando

Sí, efectivamente, fue otro error de novato en Perl, jajaja. Lo que hice fue hacer un cambio de directorio en la línea antes de comenzar a crear el zip y listo, se resolvió. Antes, cuando se ejecutaba la rutina no conseguía el archivo que le estaba mandando a comprimir.
Mensaje Mar Jul 15, 2008 7:25 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 3823
Ubicación: Valladolid, España
Responder citando

Recuerda que addFile() puede admitir dos argumentos: el nombre (con todo el path) del fichero a comprimir, y el nombre como deseamos que quede comprimido.

Quizás no hubiera sido necesario hacer el movimiento de directorios...
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group