Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Composition Setup
import.css=/download/attachments/327912/newLayout.css
Portuguese

Pagetitle
MSCompressMSCompress

Função:

MsCompress
MsCompress

Compacta

um

ou

vários

arquivos

em

um

único

arquivo

no

formato

Microsiga

Zip

(extensão

.mzp).

Sintaxe

Bloco de código
collapsefalse
MsCompress(
< cArquivo | aArquivos>, [ cDestino], [ cSenha] ) --> cRet

 

 < xFile >, [ cDest ], [ cPass ], [ lChangeCase ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cArquivo | aArquivos

xFile

Caracter

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

 

cDestino

cDest

Caracter

caractere

Indica o

nome

caminho do arquivo de destino.

 

 

cSenha

cPass

Caracter

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

(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  
  • 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
languagecpp
themeEclipse
linenumberstrue
collapsefalse
// 1º Exemplo: Compacta apenas um arquivo

lRes

cRet := MsCompress( "APXSRV.EXE", "APXSRV.MZP" )



// 2º Exemplo:Compacta um diretório com senha


aNome := {}

ADIR

ADir( "*.DBF", aNome )

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