TarCompress [AS]

TarCompress [AS]
Author: Eurai
Inclusão: 01/01/2016
Alteração: 27/07/2021

Descrição

Armazena arquivos e diretórios em um único arquivo no formato TAR (Tape ARchive).

 

Sintaxe

TarCompress( <aItens>, <cDest>, <lChangeCase> )

 

Parâmetros


Par Nome Tipo Descrição Default Obg Ref
01
aItens Array Indica os arquivos e diretórios que serão armazenados   X  
02 cDest Caracter Indica o nome do arquivo que será gerado com a extensão ".tar"   X  
03 lChangeCase Boolean Indica se colocará o nome dos arquivos em letra minúscula      

 

Retorno

Retorno Tipo Descrição
cRet Caracter
Em caso de sucesso, retorna o nome do arquivo criado, incluindo o rootpath onde o arquivo no formato TAR foi criado; caso dê erro, retorna uma string em branco ("").

 

Exemplo

#INCLUDE "TOTVS.CH"
 
User Function TarCompress()
Local cNomeArq	:= ''
Local aItens	:= {}
 
aAdd( aItens, "\calculo.txt" )
aAdd( aItens, "\path\calculo.LOG" )
 
 
cNomeArq := tarCompress( aItens, "\arquivos.tar" )
If !Empty( cNomeArq )
 
	Conout( 'Compactado com Sucesso' )
 
Endif
 
Return( Nil )

Resultado
tarcompress_-_resultado_01  

 

 

Informações adicionais

Esta função agrupa uma lista de arquivos e/ou diretórios no formato TAR

TarCompress trabalha somente com arquivos e diretórios localizados no servidor (a partir do rootPath do ambiente). Caso seja passado algum arquivo no client, é gerada uma exceção com a mensagem: "Only path on server are allowed"

<aItens> deve ser um vetor de uma dimensão contendo strings com os nomes dos arquivos e/ou diretórios a serem agrupados. Caso o vetor tenha mais de uma dimensão, é gerada uma exceção com a mensagem "Argument must be an array of one dimension only"

Caso algum dos itens de <aItens> não seja do tipo caracter, ou tenha tamanho 0 (zero), ou o arquivo/diretório não exista, a função retorna uma string em branco e não gera o arquivo TAR

Caso o arquivo ou diretório contido em <aItens> não exista, será exibida a mensagem "File or Directory does not exist"

Os caminhos de cada item de aItens e de 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.120420A, o comportamento de mudança para letra minúscula, para Linux, pode ser alterado modificando o valor da chave CaseSensitive, na seção General, do arquivo ini do TOTVS | Application Server. Essa mudança impacta outras funções que também tratam arquivos

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 para letra minúscula, e se for .F. não altera o nome dos arquivos. O valor padrão do parâmetro é .T.

Em ambiente Windows, os nomes de arquivos não possuem diferenciação entre maiúsculo e minúsculo, logo, a função conseguirá tratar os arquivos apontados por aItens e cDest independente do valor definido no parâmetro lChangeCase. Em ambiente Linux ou Mac, o nome dos arquivos respeita a diferenciação

O caminho do rootpath retornado em cFile será sempre em minúsculo, independente do valor passado em lChangeCase. Já o restante do caminho após o rootpath irá respeitar o valor que está em lChangeCase

 

 

 

 

 

Gostou? Compartilhe com seus amigos e deixe um comentário! 😎  

 

 

 

 

 

 

 

Esse conteúdo te ajudou? Ajude o canal com doação
Compartilhar
Comentários