Comprimir una carpeta utilizando winrar

314 views
Skip to first unread message

Jose Manuel Urbaez Mendez

unread,
Oct 1, 2014, 4:43:05 PM10/1/14
to publice...@googlegroups.com
Buenas tardes

Alguien tiene idea de como comprimir una carpeta utilizando un winrar, desde vfp 9

Gracias anticipadas

francisco prieto

unread,
Oct 1, 2014, 4:46:43 PM10/1/14
to publice...@googlegroups.com
Jose,

En vez de usar WinRar... porque no usas la libreria de Craig Boyd...


Saludos,

Pancho
Córdoba
Argentina

Jose Manuel Urbaez Mendez

unread,
Oct 1, 2014, 4:54:43 PM10/1/14
to publice...@googlegroups.com
Francisco hago mención a Winrar por ser el compresor de uso mas común, pero nunca está explorar nuevas opciones.

Vamos a ver esto que me facilitas.

Gracias 

Fernando D. Bozzo

unread,
Oct 1, 2014, 4:57:35 PM10/1/14
to publice...@googlegroups.com
También tenés el 7zip que es Open Source y soporta casi todos los formatos de compresión.
Tiene una versión instalable multiplataforma, y tiene otra de línea de comandos para automatizar desde scripts o programas.

http://www.7-zip.org/


Saludos.-

Victor Espina

unread,
Oct 1, 2014, 5:21:50 PM10/1/14
to publice...@googlegroups.com
"{ruta al WinRAR}\rar.exe" a -r -df -ep1 "archivo.rar" "carpeta a comprimir\*" 

Saludos

Victor Espina

Jose Manuel Urbaez Mendez

unread,
Oct 1, 2014, 5:22:04 PM10/1/14
to publice...@googlegroups.com
Francisco

Me agrada el tema de la librería pues es una solución integrada a la aplicación y no necesitaría un programa adicional.

Usando la siguiente sentencia, me arroja error

SET LIBRARY TO LOCFILE("vfpcompression.fll")
?ZipFolderQuick(&xdir)
SET LIBRARY TO

Donde xdir tiene valor: "c:\factura\backup\02102014"

Sin embargo me arroja error de que falta un paréntesis ')', tal como muestra la imagen adjunta
error.png

Hernan Serrano

unread,
Oct 1, 2014, 7:19:53 PM10/1/14
to publice...@googlegroups.com
vLcC_Senten = 'winrar.exe a -ep1 -dh "'+pathcarpeta+'"'+' "'+pathdestino+'" -m5 -r -ibck '
oshell = CREATEOBJECT("WScript.Shell")
oshell.run(vlcc_senten, 1, 1)

--
Tico Support S. A.
Tel. (506)8772-6170

Héctor Bernal

unread,
Oct 1, 2014, 7:31:43 PM10/1/14
to publice...@googlegroups.com
José,

Buenas tardes. Tengo implementado el uso de ésta librería y funciona perfecto, tal cual lo indico abajo, de la siguiente forma:

             SET LIBRARY TO (ADDBS(gcRutaLibreria)+"vfpcompression.fll")
      lContinua = ZipOpen(lcArchivoZipQueSeGenera, lcRutaZipCreado, .F.)
      IF lContinua
         lProcesado = ZipFile(lcArchivoQueSeComprimeIncluyePath, .F.)
      ENDIF

Las variables que debes usar, son las que aparecen con las descripciones que incluí y que deben aparecer en la posición indicada, además de los parámetros restantes.

Espero te sea de ayuda.



Saludos desde México, D.F.

francisco prieto

unread,
Oct 1, 2014, 7:49:57 PM10/1/14
to publice...@googlegroups.com
Jose,

En principio con esa libreria no tengo ningun problema...

En segundo lugar si usas macro sustitucion en vez de poner

?ZipFolderQuick(&xdir)

pone

?ZipFolderQuick(&xdir )

Es decir despues del xDir deja un espacio en blanco

En tercer lugar ahi no va macro sustitucion....

es decir iria

?ZipFolderQuick(xdir )

 y asi tiene que funcionar.

Saludos,

Pancho
Córdoba

Luis Maria Guayan

unread,
Oct 1, 2014, 8:45:52 PM10/1/14
to publice...@googlegroups.com
Mira en el Blog que hay varios artículos:

http://comunidadvfp.blogspot.com/search/?q=.zip


Luis María Guayán
Tucumán, Argentina
_____________________________
http://comunidadvfp.blogspot.com

Jose Manuel Urbaez Mendez

unread,
Oct 2, 2014, 12:06:35 AM10/2/14
to publice...@googlegroups.com
Francisco, gracias por las aclaraciones, ya la tengo funcionando.

hhbernal, gracias por tus sugerencias, me sirven para cerciorarme de la creación del archivo

Gracias también a los demás por sus aporte.

HernanCano

unread,
Oct 2, 2014, 1:12:23 AM10/2/14
to publice...@googlegroups.com
José Manuel.

Te haré una recomendación similar a Fernando.

El hecho que sea común no es suficiente para tomar la decisión, o quizá hay situaciones contraproducentes que lo descartan.

Hasta donde sé WinRar no es gratuito (por favor: no deseo generar polémica, sólo aclararle al colega) e involucrar al cliente a buscar pagar una licencia de un producto que sólo tiene proveedores en USA, no es necesario cuando existen otros programas completamente gratuitos que pueden usarse para el mismo efecto (con extensión .RAR o no).

Existen DLLs (o FLLs) que puedes "integrar" mucho mejor que WinRar o que 7Zip.

Como verás la solución para usar WinRar, involucra usar el comando RUN, que no es del agrado (el comando RUN) de algunos de nosotros que tenemos alguna experiencia en programación.

By.

Fernando D. Bozzo

unread,
Oct 2, 2014, 1:14:35 AM10/2/14
to publice...@googlegroups.com

Respecto de esto:

?ZipFolderQuick(&xdir)

Aunque funcione, lo correcto es esto:

?ZipFolderQuick(&xdrv.)

El punto es el finalizador de las macrosustituciones, como dice la ayuda de FoxPro.

francisco prieto

unread,
Oct 2, 2014, 3:07:19 AM10/2/14
to publice...@googlegroups.com
Es cierto eso Fernando, pero he notado que cuando le colocas un espacio en blanco también termina.

Pero lo formal es ponerle el punto.

Saludos,

Pancho
Córdoba
Argentina

Jose Manuel Urbaez Mendez

unread,
Oct 2, 2014, 10:10:33 AM10/2/14
to publice...@googlegroups.com
Buenos días

HernanCano, tienes razón en eso de las licencias. Como dije antes, quise utilizar Winrar por ser el uso mas común. Como bien dices, hay soluciones que se pueden integrar a la aplicación y eso fue lo que hice, tomé la recomendación de Francisco Prieto y puse en funcionamiento la librería "vfpcompression" y me está funcionando de lo más bien.


Fernando D. Bozzo - Francisco Prieto, tienen razón en eso de la terminación de las macrosustituciones. La situación que se me presentaba anteriormente la resolví enviando como parametro el valor de la variable que contiene la ruta, pura y simplemente, sin mas aditamentos. Con esto me está funcionando de los mas bien.

Gracias nuevamente a todos por sus apor


El miércoles, 1 de octubre de 2014 16:43:05 UTC-4, Jose Manuel Urbaez Mendez escribió:
Reply all
Reply to author
Forward
0 new messages