Saltar al contenido principal
Versión: Siguiente

ZIP Read archive

ZIP Read archive ( zipFile : 4D.File { ; password : Text }) : 4D.ZipArchive

ParámetrosTipoDescripción
zIPFile4D.FileArchivos Zip
contraseñaTextContraseña del archivo ZIP, si la hay
Result4D.ZipArchiveObjeto archivo
Historia
LanzamientoModificaciones
18Añadidos

Descripción

El comando ZIP Read archive recupera el contenido de zipFile y lo devuelve como un objeto 4D.ZipArchive.

Este comando no descomprime el archivo ZIP, sólo ofrece una vista de su contenido. To extract the contents of an archive, you need to use methods such as file.copyTo() or folder.copyTo().

Pase un objeto 4D.File que haga referencia al archivo ZIP comprimido en el parámetro zipFile. El archivo de destino se abrirá hasta que el ZIP Read archive haya terminado de ejecutarse y todos los contenidos/referencias hayan sido extraídos/liberados, entonces se cerrará automáticamente.

Si el zipFile está protegido por contraseña, es necesario utilizar el parámetro opcional password para suministrar una contraseña. Si se requiere una contraseña pero no se pasa al intentar leer el contenido del archivo, se genera un error.

Objeto archivo

El objeto 4D.ZipArchive devuelto contiene una única propiedad root cuyo valor es un objeto 4D.ZipFolder. Esta carpeta describe todo el contenido del archivo ZIP.

Ejemplo

Para recuperar y ver el contenido de un objeto ZIP file:

 var $archive : 4D.ZipArchive
var $path : 4D.File

$path:=Folder(fk desktop folder).file("MyDocs/Archive.zip")
$archive:=ZIP Read archive($path)

Para recuperar la lista de los archivos y carpetas del archivo:

 $folders:=$archive.root.folders()
$files:=$archive.root.files()

Para leer el contenido de un archivo sin extraerlo de la carpeta root:


If($files[$i].extension=".txt")
$txt:=$files[$i].getText()
Else
$blob:=$files[$i].getContent()
End if

Para extraer desde la carpeta root:

  //extraer un archivo
$folderResult:=$files[$i].copyTo(Folder(fk desktop folder).folder("MyDocs"))

//extraer todos los archivos
$folderResult:=$archive.root.copyTo(Folder(fk desktop folder).folder("MyDocs"))

Ver también

ZipArchive Class ZipFile Class ZipFolder Class ZIP Create archive