Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: vikour92 en 9 Abril 2012, 15:35 pm



Título: ¿Cómo descomprimir archivos en rar con C?
Publicado por: vikour92 en 9 Abril 2012, 15:35 pm
Buenas a todos.

Estoy intentando hacer un porgrama que maneje archivos comprimidos en rar. He estado buscando y he encontrado para .zip y .gz ( con zlib ) pero no encuentro nada decente que funcione para archivos .rar.

¿Alguien sabe de alguna librería o algo para poder descomprimir?.

Estoy en un OS Linux, también he pensado usar las llamadas del sistema para usar la línea de comandos y descomprimir por ahí. Pero no se si abrá incompatibilidad a la hora de funcionar en Windows.

Usé una librería sin éxito, fue http://www.unrarlib.org/ (http://www.unrarlib.org/) pero hasta el ejemplo que venía ya hecho me dió error xD.

Un saludo y gracias.


Título: Re: ¿Cómo descomprimir archivos en rar con C?
Publicado por: electrodev en 9 Abril 2012, 20:20 pm
Bueno pues mira no se si te servira pero puedes usar el winrar en modo msdos que lo puedes descargar aqui: http://www.rarlab.com/rarold.htm (http://www.rarlab.com/rarold.htm) donde dise RAR 3.93 for MS DOS poner en cmd: rarx393 -h y despues llamarlo desde C con system() por ejemplo: system("rarx393 -h")

Espero que te haya servido para algo y para cualquier pregunta que pueda yo ayudarte, ya sabes

Saludos:vikour


Título: Re: ¿Cómo descomprimir archivos en rar con C?
Publicado por: vikour92 en 16 Abril 2012, 16:34 pm
Am gracias. Esa era una alternativa. Si lo tengo que hacer para que funcione en linux y en windows puedo cambiar el comando a ejeuctarse por system con el prepocesador. Lo probaré.

Aunque, aún no tengo bastante nivel y no se si se puede, en la página de winrar hay un apartado que te dice el formato que tienen los rar ( http://www.winrar.es/soporte/articulo/45 (http://www.winrar.es/soporte/articulo/45) ). Pero tienes que hacer operaciones de CRC y etc que aun no me voy a meter en todos esos lios xD.

De todos modos, muchas gracias de nuevo Eduardo97 :)