Á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

...

Pagetitle

...

Função: MSCompress

MsCompress
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
collapsefalse
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
languagecpp
themeEclipse
linenumberstrue
collapsefalse
files".
// 1º Exemplo: Compacta apenas um 
arquivolRes
arquivo
cRet := 
MSCOMPRESS
MsCompress( "APXSRV.EXE", "APXSRV.MZP" )

// 2º Exemplo:Compacta um diretório com 
senhaaNome
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

Veja também