Página 1 de 1

Manejo de TUnzipFile()

Publicado: Mar Nov 03, 2009 2:05 am
por Guillermo Guevara Car
Requiero extraer del archivo DAT.ZIP unicamente un archivo .
El contenido del archivo .ZIP tiene dos archivos JPG que fueron comprimidos
con TZipFile quedando dentro del archivo DAT.ZIP como se muestra:
C:DAT01FILE.JPG
C:DAT02FILE.JPG
Lo que se requiere es extraer del DAT.ZIP unicamente el archivo:
C:DAT02FILE.JPG
Ya lo intente de mil maneras y no logro extraerlo, que debo poner en el
:aFileMask para obtener el resultado deseado.
WITH OBJECT oZip := TUnzipFile()
:cFileName := "DAT.ZIP"
:aFileMask := ? // QUE DEBO DE INDICAR AQUí PARA EXTRAER EL
ARCHIVO REQUERIDO
:cDirectory := "C:PRUEBA" // CON ESTE DIRECTORIO NO HAY
PROBLEMA PUEDE SER CUALQUIERA
:lIncludePath := .F.
:OnProgress := {|oSender, cFile, nPos| ::oProgressDlg1:nValue :=
(nPos/:nCount)*100}
If :Run()
MsgInfo('Ok')
EndIf
::oProgressDlg1:Stop()
END WITH
Gracias
Guillermo

Manejo de TUnzipFile()

Publicado: Mar Nov 03, 2009 8:25 am
por Xevi
Guillermo,
Yo lo estoy utilizando así...
aFileMask := { "MiFichero.xxx" }
Ahora bien, tu lo quieres extraer de una carpeta...
Tendrás que probar...
aFileMask := { "DAT02FILE.JPG" }
aFileMask := { "002FILE.JPG"
Un Saludo,
Xevi.
"Guillermo Guevara C." <soporte@pvwin.com> escribió en el mensaje
news:4aef81d1$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Requiero extraer del archivo DAT.ZIP unicamente un archivo .
>
> El contenido del archivo .ZIP tiene dos archivos JPG que fueron
> comprimidos con TZipFile quedando dentro del archivo DAT.ZIP como se
> muestra:
>
> C:DAT01FILE.JPG
> C:DAT02FILE.JPG
>
> Lo que se requiere es extraer del DAT.ZIP unicamente el archivo:
> C:DAT02FILE.JPG
>
> Ya lo intente de mil maneras y no logro extraerlo, que debo poner en el
> :aFileMask para obtener el resultado deseado.
>
> WITH OBJECT oZip := TUnzipFile()
> :cFileName := "DAT.ZIP"
> :aFileMask := ? // QUE DEBO DE INDICAR AQUÍ PARA EXTRAER EL
> ARCHIVO REQUERIDO
> :cDirectory := "C:PRUEBA" // CON ESTE DIRECTORIO NO HAY
> PROBLEMA PUEDE SER CUALQUIERA
> :lIncludePath := .F.
> :OnProgress := {|oSender, cFile, nPos| ::oProgressDlg1:nValue :=
> (nPos/:nCount)*100}
> If :Run()
> MsgInfo('Ok')
> EndIf
> ::oProgressDlg1:Stop()
> END WITH
>
> Gracias
>
> Guillermo

Manejo de TUnzipFile()

Publicado: Mar Nov 03, 2009 12:43 pm
por Guillermo Guevara Car
"Xevi" <xevicomas@gmail.com> escribió en el mensaje de noticias
news:4aefdaea$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Guillermo,
>
> Yo lo estoy utilizando así­...
> aFileMask := { "MiFichero.xxx" }
>
> Ahora bien, tu lo quieres extraer de una carpeta...
> Tendrás que probar...
> aFileMask := { "DAT02FILE.JPG" }
> aFileMask := { "002FILE.JPG"
>
>
> Un Saludo,
> Xevi.
>
>
> "Guillermo Guevara C." <soporte@pvwin.com> escribió en el mensaje
> news:4aef81d1$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>> Requiero extraer del archivo DAT.ZIP unicamente un archivo .
>>
>> El contenido del archivo .ZIP tiene dos archivos JPG que fueron
>> comprimidos con TZipFile quedando dentro del archivo DAT.ZIP como se
>> muestra:
>>
>> C:DAT01FILE.JPG
>> C:DAT02FILE.JPG
>>
>> Lo que se requiere es extraer del DAT.ZIP unicamente el archivo:
>> C:DAT02FILE.JPG
>>
>> Ya lo intente de mil maneras y no logro extraerlo, que debo poner en el
>> :aFileMask para obtener el resultado deseado.
>>
>> WITH OBJECT oZip := TUnzipFile()
>> :cFileName := "DAT.ZIP"
>> :aFileMask := ? // QUE DEBO DE INDICAR AQUí PARA EXTRAER EL
>> ARCHIVO REQUERIDO
>> :cDirectory := "C:PRUEBA" // CON ESTE DIRECTORIO NO HAY
>> PROBLEMA PUEDE SER CUALQUIERA
>> :lIncludePath := .F.
>> :OnProgress := {|oSender, cFile, nPos| ::oProgressDlg1:nValue
>> := (nPos/:nCount)*100}
>> If :Run()
>> MsgInfo('Ok')
>> EndIf
>> ::oProgressDlg1:Stop()
>> END WITH
>>
>> Gracias
>>
>> Guillermo
Xevi:
Efectí­vamente funciona bién cuando se trata de un archivo como tu me lo
indicas:
aFileMask := { "DAT02FILE.JPG" }
Ahora se supone que es una máscara y deberí­a de funcionar para extraer
varios archivos que esten referenciados al mismo path, por ejemplo:
aFileMask := { "DAT02*.JPG" }
Pero no funciona, ya probé de varias formas, creo que es un bug de la clase
TUnzipFile, pruébenlo y verán.
¿Que se puede hacer?, estoy detenido por este detalle ó indí­quenme que estoy
haciendo mal.
Gracias Xevi por tu respuesta, el problema sigue ahí­.
Guillermo

Manejo de TUnzipFile()

Publicado: Mar Nov 03, 2009 1:35 pm
por jlalin
Guillermo,
acabo de probar tu ejemplo con un zip exacto al que describes y funciona
perfectamente:
WITH OBJECT TUnzipFile():New()
:cFileName := "c:datDAT.ZIP"
:aFileMask := { "001file.jpg" }
:cDirectory := "C:test"
:OnProgress := {|oSender, cFile| MsgAlert( cFile ) }
:Create()
:lIncludePath := .F.
MsgAlert( :Run() )
END WITH
Saludos,
José Lalí­n

Manejo de TUnzipFile()

Publicado: Mar Nov 03, 2009 1:51 pm
por jlalin
Guillermo,
veo que el problema aparece cuando se especifica una máscara y no un archivo.
He trazado el código y el bug está en hb_unzipfile que hace algo raro con
los paths. Si se hace así­ funciona correctamente:
:aFileMask := { "001*.jpg" }
Saludos,
José Lalí­n

Manejo de TUnzipFile()

Publicado: Jue Nov 05, 2009 12:24 am
por Guillermo Guevara Car
"José Lalí­n" <dezac_quitaesto_@corevia.com> escribió en el mensaje de
noticias news:[email=4af02748@svctag-j7w3v3j....]4af02748@svctag-j7w3v3j....[/email]
Guillermo,
veo que el problema aparece cuando se especifica una máscara y no un
archivo.
He trazado el código y el bug está en hb_unzipfile que hace algo raro con
los paths. Si se hace así­ funciona correctamente:
:aFileMask := { "001*.jpg" }
Saludos,
José Lalí­n
Gracias José
Lo voy a probar
Guillermo