Resulta que lo que busco es hacer una copia de mis ficheros que estan en una carpeta
CarpetaA
FicheroA01
FicheroA02
CarpetaB1
FicheroB1
FicheroB2
El caso...
WITH OBJECT oZip := TZipFile():New()
:lRecurse := .T.
Guarda TODOS los archivos correctamente, PERO me pone el path completo de la ubicación de los archivos.
Así pues esta copia por ejemplo la guardaria en
CarpetaPrueba+CarpetaOtra+CarpetaA...
Lo que necesito es que guarde la ubicación, SI pero SOLO A PARTIR DE DESDE ESTOY HACIENDO LA COPIA. Vaya, como hace Winzip o cualquier compresor de archivos.
Lo que seria en la CarpetaA
(lIncludePath por defecto esta en .T.)
Si lIncludePath lo establezco a .f., los ficheros se guardan, pero sin carpetas contenedoras.
Para este menester, dispongo de un ZipArchive del 10/12/2012 que me está funcionando, PERO estaria correcto que el mismo Xailer funcionara de esta forma, no???
No se si me explico.
Un Saludo,
Xevi.
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
TZIP no se como hacerlo
TZIP no se como hacerlo
Un Saludo,
Xevi.
Xevi.
Re: TZIP no se como hacerlo
Así pues...
Partimos de una carpeta en la raíz de C:
CarpetaNueva
en su contenido otra carpeta
CarpetaZip
y en su interior ficheros, carpetas...
Fichero1, Fichero2...
Bien lanzamos el Sample TestZip de Xailer, localizamos la CarpetaZip que queremos "empaquetar" y donde queremos que nos guarde el fichero zip resultante.
Comprime y visualizamos el resultado.
Resulta que no tenemos una
CarpetaZip y todos sus archivos y/o carpetas en su interior
sinó que tenemos una
CarpetaNueva
en su contenido otra carpeta
CarpetaZip
y en su interior ficheros, carpetas...
Fichero1, Fichero2...
Un Saludo,
Xevi.
Partimos de una carpeta en la raíz de C:
CarpetaNueva
en su contenido otra carpeta
CarpetaZip
y en su interior ficheros, carpetas...
Fichero1, Fichero2...
Bien lanzamos el Sample TestZip de Xailer, localizamos la CarpetaZip que queremos "empaquetar" y donde queremos que nos guarde el fichero zip resultante.
Comprime y visualizamos el resultado.
Resulta que no tenemos una
CarpetaZip y todos sus archivos y/o carpetas en su interior
sinó que tenemos una
CarpetaNueva
en su contenido otra carpeta
CarpetaZip
y en su interior ficheros, carpetas...
Fichero1, Fichero2...
Un Saludo,
Xevi.
Un Saludo,
Xevi.
Xevi.
Re: TZIP no se como hacerlo
De momento, he añadido esto en la línea 175 del fichero ZipArchive.prg (de Xailer3.3.1)
quedando así...
cFile := SubStr( cFile, Len( FilePath(cPath) ) - 1 ) //Añadido
IF Empty( ::cPassword )
HB_ZipFileCreate( hZip, cFile, dDate, cTime, 0, nAttr,, ;
::nCompressionLevel )
ELSE
HB_ZipFileCreate( hZip, cFile, dDate, cTime, 0, nAttr,, ;
::nCompressionLevel, ::cPassword, hb_ZipFileCRC32( cFile ) )
ENDIF
Para lo que necesito, me funciona, pero no se si será "correcto" para demás menester.
Esperaré a que alguien se pronuncie!!!
Un Saludo,
Xevi.
quedando así...
cFile := SubStr( cFile, Len( FilePath(cPath) ) - 1 ) //Añadido
IF Empty( ::cPassword )
HB_ZipFileCreate( hZip, cFile, dDate, cTime, 0, nAttr,, ;
::nCompressionLevel )
ELSE
HB_ZipFileCreate( hZip, cFile, dDate, cTime, 0, nAttr,, ;
::nCompressionLevel, ::cPassword, hb_ZipFileCRC32( cFile ) )
ENDIF
Para lo que necesito, me funciona, pero no se si será "correcto" para demás menester.
Esperaré a que alguien se pronuncie!!!
Un Saludo,
Xevi.
Un Saludo,
Xevi.
Xevi.
Re: TZIP no se como hacerlo
Sigo...
adjunto el TestZip con un "apaño"
A ver si voy bien por ahí, a mi me está funcionando.
Me baso en ZipArchive de la versión Xailer331 que es la que dispongo.
He añadido una DATA cPathSave a la clase TZIP, para que guarde o no TODA la ruta.
En el Sample hay un checkbox, que dependiendo de su marcado o no, hace que se guarde toda la ruta anterior a la carpeta a salvaguardar o solamente la carpeta y todos sus archivos y carpetas... Que es el comportamiento "normal" que creo deberia de ser.
Ahí lo dejo.
Esperando alguna opinión de alguno que entienda más.
Un Saludo,
Xevi.
adjunto el TestZip con un "apaño"
A ver si voy bien por ahí, a mi me está funcionando.
Me baso en ZipArchive de la versión Xailer331 que es la que dispongo.
He añadido una DATA cPathSave a la clase TZIP, para que guarde o no TODA la ruta.
En el Sample hay un checkbox, que dependiendo de su marcado o no, hace que se guarde toda la ruta anterior a la carpeta a salvaguardar o solamente la carpeta y todos sus archivos y carpetas... Que es el comportamiento "normal" que creo deberia de ser.
Ahí lo dejo.
Esperando alguna opinión de alguno que entienda más.
Un Saludo,
Xevi.
- Adjuntos
-
- TestZip.zip
- (7.47 KiB) Descargado 120 veces
Un Saludo,
Xevi.
Xevi.
Re: TZIP no se como hacerlo
Igual no me explico bien,
Resulta que si guardamos los archivos de la carpeta "MiCarpeta" que se encuentra en "C:\Prueba\Nueva\MiCarpeta" al guardar el zip , se guarda TODA LA RUTA RELATIVA, así pues, se crea una carpeta "Prueba", dentro de ella la carpeta "Nueva" y ya dentro la carpeta seleccionada a guardar.
No quiero hacerme pesado... pero una simple respuesta.
Es correcto el funcionamiento de la Clase TZIP, es como debe hacer, lo estamos mirando... no se, algo, no???
Un Saludo,
Xevi.
Resulta que si guardamos los archivos de la carpeta "MiCarpeta" que se encuentra en "C:\Prueba\Nueva\MiCarpeta" al guardar el zip , se guarda TODA LA RUTA RELATIVA, así pues, se crea una carpeta "Prueba", dentro de ella la carpeta "Nueva" y ya dentro la carpeta seleccionada a guardar.
No quiero hacerme pesado... pero una simple respuesta.
Es correcto el funcionamiento de la Clase TZIP, es como debe hacer, lo estamos mirando... no se, algo, no???
Un Saludo,
Xevi.
Un Saludo,
Xevi.
Xevi.