Nesse vídeo demonstraremos a utilização das funções FZip e FUnzip, que servem para compactar ou descompactar arquivos.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zExe260
Exemplo de como compactar arquivos para o formato .zip ou descompactar eles
@type Function
@author Atilio
@since 21/02/2023
@see https://tdn.totvs.com/display/tec/FZip e https://tdn.totvs.com/display/tec/FUnZip
@obs
Função FZip
Parâmetros
+ cArquivoZip , Caractere , Nome do arquivo que será criado
+ aArquivos , Array , Lista de arquivos que serão compactados
+ cBaseDir , Caractere , Diretório para não incluir dentro do arquivo
+ cSenha , Caractere , Define uma senha caso queira utilizar uma segurança criptografada
Retorno
+ nRet , Numérico , Retorna 0 se conseguiu compactar
Função FUnzip
Parâmetros
+ cArquivoZip , Caractere , Nome do arquivo que será descompactado
+ cPasta , Caractere , Nome da pasta onde será descompactado
+ cSenha , Caractere , Senha que será utilizada na descompactação (caso tenha sido utilizado na compactação)
Retorno
+ nRet , Numérico , Retorna 0 se conseguiu descompactar
**** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/
User Function zExe260()
Local aArea := FWGetArea()
Local cArquiZip := "C:\spool\teste.zip"
Local aArquivos := {}
Local cSenhaZip := "tst@123"
Local nRetorno := 0
//Adiciona os arquivos que serão compactados
aAdd(aArquivos, "C:\spool\log_auto.txt")
//Faz a compactação dos arquivos e define uma senha
nRetorno := FZip(cArquiZip, aArquivos, , cSenhaZip)
If nRetorno == 0
FWAlertSuccess("Sucesso na compactação!", "Teste FZip")
Else
FWAlertError("Falha na compactação!", "Teste FZip")
EndIf
//Agora faz a descompactação
nRetorno := FUnZip(cArquiZip, "C:\spool\teste", cSenhaZip)
If nRetorno == 0
FWAlertSuccess("Sucesso na descompactação!", "Teste FUnZip")
Else
FWAlertError("Falha na descompactação!", "Teste FUnZip")
EndIf
FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.