Á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
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

...

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
// 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