Pagetitle |
---|
MSCompress | MSCompress | Função: Compacta um ou vários arquivos em um único arquivo no formato Microsiga Zip (extensão .mzp). Sintaxe Bloco de código |
---|
| MsCompress( | < cArquivo | aArquivos>, [ cDestino], [ cSenha] ) --> cRet < xFile >, [ cDest ], [ cPass ], [ lChangeCase ] )
|
ParâmetrosNome | Tipo | Descrição | Obrigatório | Referência |
---|
cArquivo | aArquivosCaracterqualquer | 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 | |
cDestinoCaracter nome caminho do arquivo de destino. | | |
cSenhaCaractercaractere | 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(caracter)Retorna uma string, se compactado com sucesso, com caractere | Em caso de sucesso, retorna uma string 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 (""). |
Observações- O formato MZP (Microsiga Zip) é proprietário e multiplataforma.
- Se em
<cDestino> - 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
<cArquivo>- xFile, ou o nome do 1º arquivo, do parâmetro
<aArquivos>- <xFile>, com a extensão "
*- .mzp".
- Caso a senha seja informada na compactação, somente será possível descompactar o
arquivo especificando - arquivo especificando a mesma senha para a função de descompactação.
- A função trabalha com
arquivos do - 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 - MZP dentro do RootPath do Server
, - passando como parâmetro um ou mais
arquivo(s) - arquivos 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 - <b>Error in MSCOMPRESS(): MsCompress do not handle files in the server and client at same moment.</b>", e/
ou Error - <b>Error in MSCOMPRESS(): MsCompress can only refer to files in the server.</b>", respectivamente.
- Quando utilizamos a função
MSCompress() - 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 - <b>Error in MSCOMPRESS(): MsCompress Client do not handle multiple
files- 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/".
Exemplos Bloco de código |
---|
language | cpp |
---|
theme | Eclipse |
---|
linenumbers | true |
---|
collapse | false |
---|
| // 1º Exemplo: Compacta apenas um arquivo |
lRes
cRet := MsCompress( "APXSRV.EXE", "APXSRV.MZP" ) |
// 2º Exemplo:Compacta um diretório com senha |
ADIR lRes
cRet := 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 Veja também |