MSCompress [AS]

MSCompress [AS]
Author: Eurai
Inclusão: 01/01/2016
Alteração: 27/07/2021

Descrição

Compacta um ou vários arquivos em um único arquivo no formato Microsiga Zip (extensão .mzp).

 

Sintaxe

MSCompress( <cArquivo / aArquivos>, <cDestino>, <cSenha> )

 

Parâmetros


Par Nome Tipo Descrição Default Obg Ref
01
cArquivo / aArquivos Caracter / Array Indica o arquivo ou lista de arquivos que serão compactados. Os tipos de dados válidos para este parâmetro são : Caracter, para especificar um único arquivo, ou Array de caracteres, para especificar um ou mais arquivos   X  
02 cDestino Caracter Indica o nome do arquivo destino   X  
03 cSenha Caracter Indica a senha que será utilizada para criptografar o arquivo compactado      

 

Retorno

Retorno Tipo Descrição
cRet Caracter
Retorna uma string, se compactado com sucesso, com o nome do arquivo gerado; caso contrário, por falta de espaço no disco rígido ou erro de acesso em algum dos arquivos, retornará uma string em branco ("").

 

Exemplo

#INCLUDE "TOTVS.CH"

User Function MSCompress()
local cRet	:= ''
 
cRet	:= MsCompress( "\calculo.TXT", "calculo.MZP" )
If !Empty( cRet )
	Conout( 'Compactado com Sucesso' )
Endif
 
Return( Nil )

Resultado
mscompress_-_resultado_01  

 

 

Informações adicionais

O formato MZP (Microsiga Zip) é proprietário e multiplataforma

Se em <cDestino> a extensão não for informada ou o nome não for informado, o padrão assumido será "*.mzp". Desta forma, o padrão será o mesmo nome do arquivo, do parâmetro <cArquivo>, ou o nome do 1º arquivo, do parâmetro <aArquivos>, com a extensão "*.mzp"

Caso a senha seja informada na compactação, somente será possível descompactar o arquivo especificando a mesma senha para a função de descompactação

A função trabalha com arquivos do ambiente (Environment) no Server (a partir do StartPath e/ou RootPath do ambiente) e com arquivos na estação remota, mas não com ambos ao mesmo tempo. Por exemplo, não é possível gerar um arquivo MZP dentro do RootPath do Server, passando como parâmetro um ou mais arquivo(s) de origem na estação remota, e/ou vice-versa. Caso a aplicação tente fazer isso, a execução do programa será interrompida com uma ocorrência de erro fatal AdvPL "Error in MSCOMPRESS(): MsCompress do not handle files in the server and client at same moment.", e/ou  "Error in MSCOMPRESS(): MsCompress can only refer to files in the server.", respectivamente

Quando utilizamos a função MSCompress() para gerar um arquivo MZP na estação remota, podemos especificar apenas um arquivo de origem para ser compactado. Caso seja especificado mais de um arquivo de origem neste cenário, a aplicação AdvPL é interrompida com a ocorrência de erro fatal AdvPL "Error in MSCOMPRESS(): MsCompress Client do not handle multiple files"

MSCompress não armazena no arquivo MZP o nome dos diretórios onde o(s) arquivo(s) se encontra(m). Portanto, caso sejam especificados múltiplos arquivos de origem, com mesmo nome, em pastas diferentes, a operação de descompactação salvará todos os arquivos na mesma pasta, onde os arquivos com mesmo nome serão sobrepostos

 

 

 

 

 

Gostou? Compartilhe com seus amigos e deixe um comentário! 😎  

 

 

 

 

 

 

 

Esse conteúdo te ajudou? Ajude o canal com doação
Compartilhar
Comentários