...
Para determinar se é necessário extrair novamente o arquivo faz a comparação do MD5 do conteudo do arquivo em relação ao arquivo físico.
Exemplo
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
#include "protheus.ch" /*/{Protheus.doc} TestExtRes Função de teste da classe ExtractResource @author Caio.Lima @since 01/08/2022 /*/ Function U_TestExtRes() Local oResource as object Local cResource as character oResource := totvs.framework.file.ExtractResource():New() cResource := "" While !Empty( cResource := FWInputBox("Informe o nome do resource", "APLOGO_OCEAN.JPG") ) oResource:ExtractOneResource(cResource) ConOut(oResource:GetLog()) If oResource:IsResourceOk() // copia o arquivo para o client CpyS2T(oResource:GetPathResFile(), "C:\teste\") // abre o arquivo na maquina do client ShellExecute("open", "C:\teste\" + cResource, "", "", 1) Else Alert("Falha ao salvar resouce" + CRLF + oResource:GetLog() ) EndIf oResource:DeleteLastResource() EndDo Return |
...
GetCodResourceLog Âncora GetCodResourceLog GetCodResourceLog
Retorna o código do log de extração do resource
...
Nome | Tipo | Descrição | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
nRet | Numérico | codigo do log de extração do resource
|
...
IsResourceOk Âncora IsResourceOk IsResourceOk
Retorna se o arquivo de resource está ok, ou seja, presenta na pasta de rootpath e atualizado em relação ao RPO
...
Nome | Tipo | Descrição |
---|---|---|
lRet | logico | varivael de controle se o resource está ok |
...
GetLog Âncora GetLog GetLog
Retorna o log definido na classe
...
Nome | Tipo | Descrição |
---|---|---|
cLog | caractere | ultimo log que foi definido ao extrair um recurso |
...
GetRooPath Âncora GetRooPath GetRooPath
Metodo para retornar o caminho padrão de extração do arquivo
caso a propriedade extensão esteja informada retorna também a extensão como parte do caminho, sempre retorna o caractere de barra no final do caminho
Nome | Tipo | Descrição |
---|---|---|
cRet | caractere | o caminho padrão que será utilizada no extract |
...
SetRootPath Âncora SetRootPath SetRootPath
Método para definir o caminho padrão de extração do arquivo
Caminho de extração deve ser no servidor a partir da protheus_data
...
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cRootPath | caractere | pasta para definir o caminho padrão para extração | X |
...
GetPathResFile Âncora GetPathResFile GetPathResFile
Retorna o nome do resource concatenado com o rootpath
...
Nome | Tipo | Descrição |
---|---|---|
cRet | caractere | nome completo do path mais o resource |
...
NeedReload Âncora NeedReload NeedReload
Metodo para verificar se o resource precisa ser extraído novamente
...
Nome | Tipo | Descrição |
---|---|---|
lRet | logico | True caso precise fazer o reload no arquivo e false caso não precise. |
...
ExtractOneResource Âncora ExtractOneResource ExtractOneResource
Método para extrair um resource do RPO
Retorna true apenas caso tenha feito a extração,
Caso tenha retornado false é necessário utilizar o método isResourceOk
Para determinar se o resource está disponível na pasta, junto com o método GetLog e GetCodResourceLog
Parametro
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cResource | caractere | Indica o nome do recurso no repositório a ser salvo em disco pode ser passado junto com a extensão | X |
cExtensao | caractere | extensão do arquivo a ser extraído, caso seja passado não deve ser passado no resource, | |
cMD5 | caractere | código md5 do arquivo, caso seja passado não irá utilizar o md5 do arquivo físico será utilizado esse parâmetro para determinar se o arquivo precisa ser atualizado | |
parâmetro interno, não deve ser utilizado. |
Retorno
Nome | Tipo | Descrição |
---|---|---|
lRet | logico | retorna true caso tenha extraído com sucesso o arquivo retorna false caso não tenha feito a extração, se o recurso já está na pasta rootpath definida, tb irá retornar false |
...
DeleteLastResource Âncora DeleteLastResource DeleteLastResource
Deleta o resource extraído anteriormente, se o arquivo já não existir no diretório retorna 0
Retorno
Nome | Tipo | Descrição |
---|---|---|
nRet | numérico | Código de retorno da função FErase retorna 0 caso tenha conseguido deletar, ou -1 caso não tenha deletado |