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