Função: MsCompressCompacta um ou vários arquivos em um único arquivo no formato Microsiga Zip (extensão .mzp). MsCompress ( < cArquivo | aArquivos>, [ cDestino], [ cSenha] ) --> cRet Nome | Tipo | Descrição | Obrigatório | Referência | cArquivo | aArquivos | Caracter | 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 | | cDestino | Caracter | Indica o nome do arquivo destino. | | | cSenha | Caracter | Indica a senha que será utilizada para criptografar o arquivo compactado. | | |
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 ("").
- 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.
// 1º Exemplo: Compacta apenas um arquivo lRes := MsCompress( "APXSRV.EXE", "APXSRV.MZP" )
// 2º Exemplo:Compacta um diretório com senha aNome := {} ADIR( "*.DBF", aNome ) lRes := MsCompress( aNome, "ArqComp.MZP", "SENHA" ) Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server |