Saltar para o conteúdo principal
Versão: Próximo

ZIP Read archive

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

ParâmetroTipoDescrição
zipFile4D. FileArquivos Zip
senhaTextSenha do arquivo ZIP, se houver
ResultadosParâmetrosObjeto arquivo
História
ReleaseMudanças
18Adicionado

Descrição

O comando ZIP Read archive recupera o conteúdo do zipFile e o retorna como um objeto 4D.ZipArchive.

O comando não descompacta o arquivo ZIP, apenas oferece uma visão de seus conteúdos. Para extrair os conteúdos do arquivo, precisa usar métodos como file.copyTo() ou folder.copyTo().

Pass a 4D.File object referencing the compressed ZIP archive in the zipFile parameter. The target archive file will be opened until the ZIP Read archive has finished executing and all contents/references have been extracted/released, then it will be closed automatically.

If the zipFile is password protected, you need to use the optional password parameter to provide a password. Se uma senha for exigida mas não for passada, quando tentar ler os conteúdos do arquivo um erro será gerado.

Objeto arquivo

O objeto 4D.ZipArchive retornado contém uma única propriedade root cujo valor é um objeto 4D.ZipFolder. Esta pasta descreve todo o conteúdo do ficheiro ZIP.

Exemplo

Para recuperar e ver os conteúdos de um 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 a lista dos arquivos e pastas no arquivo:

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

Para extrair da pasta root:


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

Para ler todos os conteúdos de um arquivo sem extraí-lo da pasta root:

  //extract a file
$folderResult:=$files[$i].copyTo(Folder(fk desktop folder).folder("MyDocs"))

//extract all files
$folderResult:=$archive.root.copyTo(Folder(fk desktop folder).folder("MyDocs"))

Veja também

ZipArchive Class ZipFile Class ZipFolder Class ZIP Create archive

Propriedades

Número de comando1637
Thread safe