Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/327912/newLayout.css |
...
Pagetitle |
---|
...
Função: MSCompress
|
Compacta um ou vários arquivos em um único arquivo no formato Microsiga Zip (extensão .mzp
...
).
Sintaxe
...
MSCompress ( < cArquivo | aArquivos>, [ cDestino], [ cSenha] ) --> cRet
...
Bloco de código | ||
---|---|---|
| ||
MsCompress( < xFile >, [ cDest ], [ cPass ], [ lChangeCase ] )
|
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|
...
xFile |
...
qualquer | 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 |
...
cDest |
...
caractere | Indica o |
...
caminho do arquivo |
...
de destino. | ||
cPass | caractere |
...
Indica a senha que será utilizada para criptografar o arquivo compactado. | ||||
lChangeCase | lógico | Indica se colocará o nome dos arquivos em letra minúscula. |
Retorno
Nome | Tipo | Descrição |
---|---|---|
cRet |
...
caractere | Em caso de sucesso, retorna uma string |
...
com o nome do arquivo gerado; caso contrário |
...
, retornará uma string em branco (""). |
Observações
- O formato MZP (Microsiga Zip) é proprietário e multiplataforma.
- Se em cDest 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 xFile, ou o nome do 1º arquivo, do parâmetro <xFile>, 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
...
- arquivos de origem na estação remota, e
...
- vice-versa. Caso a aplicação tente fazer isso, a execução do programa será interrompida com uma ocorrência de erro fatal AdvPL "
...
- <b>Error in MSCOMPRESS(): MsCompress do not handle files in the server and client at same moment.</b>", e/
...
- ou "
...
- <b>Error in MSCOMPRESS(): MsCompress can only refer to files in the server.</b>", 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 "
...
- <b>Error in MSCOMPRESS(): MsCompress Client do not handle multiple files</b>".
- 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.
- Os caminhos de xFile e cDest serão convertidos para letra minúscula. A partir da build 7.00.121227A, os caminhos não serão convertidos para letra minúscula para Logix.
- A partir da build 7.00.131227A foi criado o parâmetro lChangeCase, que se for definido com o valor .T., altera o nome dos arquivos e pastas para letra minúscula, e se for .F. não altera o nome informado. O valor padrão do parâmetro é .T..
- Em ambiente Windows, os nomes de arquivos e pastas não possuem diferenciação entre maiúsculo e minúsculo, logo, a função conseguirá tratar os arquivos e pastas independente do valor definido no parâmetro lChangeCase. Em ambiente Linux ou Mac, os nomes dos arquivos e pastas respeitam a diferenciação.
- Quando o SmartClient utilizado for uma build nativa Linux ou Mac, sabe-se que sistema de arquivos destas plataformas não têm unidade de disco, a nomenclatura dos arquivos é case sensitive (letras minúsculas diferente de maiúsculas), e as barras separadoras de diretório / pasta são barras normais "/" ao invés de barras inversas "\". Mesmo nestes casos, deve-se especificar uma letra de unidade de disco no diretório de destino; pois quando o SmartClient em Linux e/ou Mac receber o diretório de destino, com a unidade de disco especificada, a unidade de disco será ignorada e as barras serão internamente invertidas. Por exemplo, a cópia especificando o path de destino "C:\USER\LOCAL\TEMP\" será interpretado pelo SmartClient Linux e/ou Mac como "/user/local/temp/".
Aviso |
---|
A função MSCOMPRESS tem um limite de trabalho de arquivos com até 2GB ( 2147483648 bytes). |
Exemplos
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
files".// 1º Exemplo: Compacta apenas um arquivolResarquivo cRet :=MSCOMPRESS MsCompress( "APXSRV.EXE", "APXSRV.MZP" ) // 2º Exemplo:Compacta um diretório comsenhaaNome senha aNome := {}ADIR ADir( "*.DBF", aNome )lRes cRet :=MSCOMPRESS 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 |