tarDecomp [AS]

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

Descrição

Restaura os arquivos e diretórios contidos em um arquivo no formato TAR (Tape ARchive).

 

Sintaxe

tarDecomp( <cTarFile>, <cOutDir>, <@nFilesOut>, <lChangeCase> )

 

Parâmetros


Par Nome Tipo Descrição Default Obg Ref
01
cTarFile Caracter Indica o nome do arquivo ( com formato TAR ) cujo conteúdo será restaurado   X  
02 cOutDir Caracter Indica o diretório onde os arquivos, contidos no arquivo TAR, serão restaurados   X  
03 nFilesOut Numérico Retorna o número de arquivos extraídos na operação     X
04 lChangeCase Boolean Indica se colocará o nome dos arquivos em letra minúscula      

 

Retorno

Retorno Tipo Descrição
lRet Boolean
Retorna verdadeiro (.T.), se a descompactação for realizada com sucesso; caso contrário, retorna falso (.F.)

 

Exemplo

#INCLUDE "TOTVS.CH"

User Function tarDecomp()
Local cNomeArq	:= ''tarDecomp
Local aItens	:= {}
 
aAdd( aItens, "\calculo.txt" )
aAdd( aItens, "\path\calculo.LOG" )
 

cNomeArq := tarCompress( aItens, "\arquivos.tar" )
If !Empty( cNomeArq )

	Conout( 'Compactado com Sucesso' )
	
	If tarDecomp( "\arquivos.tar", "\descompactar" )
	
		Conout( 'Descompactado com Sucesso' )
	
	Endif

Endif
 
Return( Nil )

Resultado
tardecomp_-_resultado_01  

 

 

Informações adicionais

Esta função somente extrai arquivos agrupados no formato TAR

Esta função trabalha somente com arquivos e diretórios localizados no servidor (a partir do rootPath do ambiente)

Caso seja passado em cTarFile o caminho de algum arquivo no cliente, é gerada uma exceção com a mensagem: "Only path file on server are allowed"; caso seja passado em cOutDir o caminho de alguma pasta no cliente, é gerada uma exceção com a mensagem: "Only path dir on server are allowed"

Antes de extrair o arquivo, verifique o espaço em disco, disponível na unidade de disco, e/ou as permissões para criação e alteração de arquivos e diretórios

Caso <cTarFile> não exista, será exibida a mensagem "Server File not found on TarDecomp()"; caso não exista <cOutDir>, será exibida a mensagem "Server Directory not found on TarDecomp()"

Caso <cOutDir> seja uma string vazia, é gerada uma exceção com a mensagem: "Invalid empty target path for TarDecomp"

Se nada for extraído do arquivo, será exibida a mensagem: "No files extracted on TarDecomp()"

Os caminhos de cOutDir, cTarFile, e dos arquivos e/ou pastas contidos em cTarFile 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 cOutDir e cTarFile independente do valor definido no parâmetro lChangeCase. Em ambiente Linux ou Mac, o nome dos arquivos respeita a diferenciação

 

 

 

 

 

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

 

 

 

 

 

 

 

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