Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Saito_25 en 5 Abril 2015, 20:37 pm



Título: [Ruby] ¿Se puede descomprimir un archivo .rar o unos cuantos?
Publicado por: Saito_25 en 5 Abril 2015, 20:37 pm
Bueno, Ruby sirve para hacer programas de escritorios o web, así que hoy, al ver que tenía que descomprimir no sé cuantos archivos, uno por uno, se me ha ocurrido la idea de si podría hacer, con ruby, un programa que, fuera descomprimiendo los archivos .rar/.zip/etc (al menos los .rar) uno por uno, es decir, que no me coja todo los archivos y los descomprima del tirón, sino que coja uno, lo descomprima, cuando esté descomprimido, descomprima otro.

A parte de saber si se puede o no, si me guiáis un poco en cómo hacerlo, os lo agradecería mucho.


Título: Re: [Ruby] ¿Se puede descomprimir un archivo .rar o unos cuantos?
Publicado por: Eleкtro en 5 Abril 2015, 20:59 pm
con el módulo zlib puedes utilizar la librería zlib incluida en Ruby:
http://ruby-doc.org/stdlib-2.1.1/libdoc/zlib/rdoc/Zlib.html

Ahí tienes ejemplos de uso y toda la documentación, plus este ejemplo adicional para iterar los archivos de un TAR-GZIP:
Código
  1. require 'rubygems/package'
  2. require 'zlib'
  3. tar_extract = Gem::Package::TarReader.new(Zlib::GzipReader.open('Path/To/myfile.tar.gz'))
  4. tar_extract.rewind # The extract has to be rewinded after every iteration
  5. tar_extract.each do |entry|
  6.  puts entry.full_name
  7.  puts entry.directory?
  8.  puts entry.file?
  9.  # puts entry.read
  10. end
  11. tar_extract.close

Otra alternativa sería la librería (o gema) libarchive:
https://github.com/Hanmac/libarchive-ruby

tambien tienes ejemplos de uso en la documentación.

Aparte de todo eso hay más alternativas (cómo rubyzip, pero es muy malo), y cómo último recurso siempre podrías llamar a aplicaciones de terceros como 7Zip o WinRAR en su version commandline.

PD: Te sugiero buscar en Google antes de formular una pregunta básica, no será la primera vez que los usuarios se cansan de responder a preguntas vagas.

Saludos


Título: Re: [Ruby] ¿Se puede descomprimir un archivo .rar o unos cuantos?
Publicado por: Saito_25 en 5 Abril 2015, 21:08 pm
Buscar, busqué. Pero, no encontré nada. Y si salió algo, lo más seguro es que estuviera en inglés, y no me enteré de nada.

Te agradezco la página que me has pasado, la voy a meter a Google Trasnlate, y a ver qué sale.

Por cierto, ese código casi me deja en la silla muerto del miedo.