Descrição
TarCompress [AS] - 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
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! 😎