...
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 parade testarteste ada 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 := "" oResource:ExtractOneResource("CNTA330While !Empty( cResource := FWInputBox("Informe o nome do resource", "APP"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() Return EndDo Return |
...
GetCodResourceLog Âncora GetCodResourceLog GetCodResourceLog
Retorna o código do log de extração do resource
Retorno:
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 presente na pasta
de rootpath e atualizado em relação ao RPO
Retorno
Nome | Tipo | Descrição |
---|---|---|
lRet | logico | Variável de controle que indica se o resource está ok |
...
GetLog Âncora GetLog GetLog
Retorna o log definido na classe
Retorno
Nome | Tipo | Descrição |
---|---|---|
cLog | caractere | Último log que foi definido ao extrair um recurso |
...
GetRootPath Âncora GetRootPath GetRootPath
Método GetRooPath
Metodo para retornar o caminho padrão de extração do arquivo.
caso Caso a propriedade extensao extensão esteja informada, retorna tb também a extensao extensão como parte do caminho
sempre retorna o caracter . O caractere de barra sempre será retornado no final do caminho
Retorno
Nome | Tipo | Descrição |
---|---|---|
cRet | caractere | Caminho padrão que será utilizado no extract |
...
Metodo Âncora SetRootPath
SetRootPathSetRootPath
Método para definir o caminho padrão de extração do arquivo
. O caminho de extração deve ser no servidor a partir da protheus_data
Parâmetros
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
Retorno
Nome | Tipo | Descrição |
---|---|---|
cRet | caractere | Nome completo do path mais o resource |
...
Metodo Âncora NeedReload
NeedReloadNeedReload
Método para verificar se o resource precisa ser extraido extraído novamente
@param cMD5, codigo
Parâmetro
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cMD5 | caractere | Código md5 a ser comparado, caso seja passado não será utilizado |
...
o arquivo |
...
físico para comparar com o md5 do RPO |
...
Retorno
Nome | Tipo | Descrição |
---|---|---|
lRet | logico | True caso precise fazer o reload no arquivo e false caso não precise. |
...
ExtractOneResource Âncora ExtractOneResource ExtractOneResource
metodo Método para extrair um resource do RPO.
retorna Retorna true apenas caso tenha feito quando a extração ,
caso foi realizada. Caso tenha retornado false, é necessário utilizar o metodo método isResourceOk
para Para determinar se o resource está disponivel disponível na pasta, junto com o metodo método GetLog e GetCodResourceLog
@param cResource,
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, |
...
extração do arquivo. |
...
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
@return nRet, 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 |