MSCompress [AS]
Autor: Eurai Criado: 01/01/2016 Atualizado: 27/07/2021Descrição
Compacta um ou vários arquivos em um único arquivo no formato Microsiga Zip (extensão .mzp). |
Sintaxe
MSCompress( |
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
Informações adicionais
O formato MZP (Microsiga Zip) é proprietário e multiplataforma |
Se em |
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! 😎