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