MSCompress - Resultado

MSCompress

 

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

ParNomeTipoDescriçãoDefaultObgRef
01cArquivo / aArquivosCaracter / ArrayIndica 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 arquivosX
02cDestinoCaracterIndica o nome do arquivo destinoX
03cSenhaCaracterIndica a senha que será utilizada para criptografar o arquivo compactado

Retorno

RetornoTipoDescrição
cRetCaracterRetorna 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

MSCompress – Resultado

Informação Adicional

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

0 respostas

Deixe uma resposta

Want to join the discussion?
Feel free to contribute!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *