Árvore de páginas

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

Sintaxe

TarDecomp( < cTarFile >, < cOutDir >, [ @nFilesOut ], [ lChangeCase ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cTarFile

caractere

Indica o nome do arquivo ( com formato TAR ) cujo conteúdo será restaurado.

X

 

cOutDir

caractere

Indica o diretório onde os arquivos, contidos no arquivo TAR, serão restaurados.

X

 

nFilesOut

numérico

Retorna o número de arquivos extraídos na operação.

 

X

lChangeCase

lógico

Se verdadeiro (.T.), nomes de arquivos e pastas serão convertidos para letras minúsculas; caso contrário, falso (.F.), não será feito nenhum ajuste no nome do arquivo informado. Valor padrão (.T.). Veja maiores informações em Observações.

 

 

Retorno

Nome

Tipo

Descrição

lRet

lógico

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

Observações

  • 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".
  • nFilesOut está disponível em builds superiores a 7.00.111010A.
  • 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()".
  • O parâmetro opcional lChangeCase foi introduzido a partir do build 7.00.131227A pois em sistemas LINUX/UNIX, existe a diferenciação entre maiúsculo e minúsculo em nomes de arquivos ou pastas. Quando este parâmetro for informado, terá prioridade sobre comportamento de Case Sensitive definido pelas chaves de ini CASESENSITIVE ou SERVERTYPE. Porem, quando não especificado o parâmetro, o valor padrão (.T.) fica condicionado ao que está configurado nessas chaves.
  • 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.

Exemplos

user function exemplo()
  local aItens := {}
  local tarFile := ""
  local lRet := .F.
  
  aAdd( aItens, "\file1.txt" )
  aAdd( aItens, "\file2.txt" )
  aAdd( aItens, "\file3.txt" )
  aAdd( aItens, "\testdir\folderA" )
  aAdd( aItens, "\testdir\folderB\file1-folderB.txt" )
  aAdd( aItens, "\testdir\folderB\file2-folderB.txt" )
  aAdd( aItens, "\testdir\folderB\file3-folderB.txt" )
  
  // cria o arquivo tar
  tarFile := tarCompress( aItens, "\testdir\file.tar" )
  
  // restaura o conteúdo do tar
  lRet := tarDecomp( "\testdir\file.tar", "\testdir2" )
return

Abrangência

Protheus 10, Protheus 11, Protheus 12

Veja também

  • Sem rótulos