Árvore de páginas

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

Sintaxe

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

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

aItens

vetor

Indica os arquivos e diretórios que serão armazenados.

X

 

cDest

caractere

Indica o nome do arquivo que será gerado com a extensão ".tar".

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

cFile

caractere

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 ("").

Observações

  • 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".
  • 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 aItens e cDest independente do valor definido no parâmetro lChangeCase.
  • 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.

Exemplos

user function exemplo()
local aItens := {}
local tarFile := ""

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" )

return

Abrangência

Protheus 10, Protheus 11, Protheus 12

Veja também

  • Sem rótulos