Páginas filhas
  • totvs.framework.file.ExtractResource

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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.

Métodos:


Exemplo

Bloco de código
titleExemplo
linenumberstrue
collapsetrue
#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  


...

Âncora
GetCodResourceLog
GetCodResourceLog
GetCodResourceLog
Retorna o código do log de extração do resource

...

NomeTipoDescrição
nRetNumérico

codigo do log de extração do resource

CodigoDescrição
-3Falha no diretório: #1[crootpath]# Verifique se o caminho é valido!
-2Arquivo precisa ser atualizado porém não conseguiu acesso exclusivo via lockbyname
0ainda Ainda não foi extraído nada
-1Não foi possível efetuar a extração do arquivo de resource, verifique se o arquivo #1[resource]# existe no RPO
1Arquivo extraído com sucesso
2Arquivo já está atualizado


...

Âncora
IsResourceOk
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

...

NomeTipoDescrição
lRetlogicovarivael Variável de controle que indica se o resource está ok


...

Âncora
GetLog
GetLog
GetLog
Retorna o log definido na classe

...

NomeTipoDescrição
cLogcaractereultimo Último log que foi definido ao extrair um recurso


...

Âncora
GetRootPath
GetRootPath
GetRootPath
Método GetRooPath
Metodo para retornar o caminho padrão de extração do arquivo.
caso Caso a propriedade extensão esteja informada, retorna também a extensão como parte do caminho, sempre retorna o . O caractere de barra sempre será retornado no final do caminho

Retorno

NomeTipoDescrição
cRetcaractereo caminho Caminho padrão que será utilizada utilizado no extract


...

Âncora
SetRootPath
SetRootPath
SetRootPath
Método para definir o caminho padrão de extração do arquivo
Caminho . O caminho de extração deve ser no servidor a partir da protheus_data

...

NomeTipoDescriçãoObrigatório
cRootPathcaracterepasta Pasta para definir o caminho padrão para extraçãoX


...

Âncora
GetPathResFile
GetPathResFile
GetPathResFile
Retorna o nome do resource concatenado com o rootpath

...

NomeTipoDescrição
cRetcaracterenome Nome completo do path mais o resource


...

Âncora
NeedReload
NeedReload
NeedReload
Metodo Método para verificar se o resource precisa ser extraído novamente

ParametroParâmetro

NomeTipoDescriçãoObrigatório
cMD5caracterecodigo Código md5 a ser comparado, caso seja passado não será utilizado o arquivo físico para comparar com o md5 do RPO

...

NomeTipoDescrição
lRetlogicoTrue caso precise fazer o reload no arquivo e false caso não precise.


...

Âncora
ExtractOneResource
ExtractOneResource
ExtractOneResource
Método para extrair um resource do RPO.
Retorna true apenas caso tenha feito quando a extração ,
foi realizada. 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

NomeTipoDescriçãoObrigatório
cResourcecaractereIndica o nome do recurso no repositório a ser salvo em disco pode ser passado junto com a extensãoX
cExtensaocaractere
extensão

Extensão do arquivo a ser extraído, caso seja passado não deve ser passado no resource,
a extensão será utilizada com uma pasta na extração do arquivo.


cMD5caractere
código
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



Parâmetro interno, não deve ser utilizado.

Retorno

NomeTipoDescrição
lRetlogico
retorna
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


...

Âncora
DeleteLastResource
DeleteLastResource
DeleteLastResource
Deleta o resource extraído anteriormente, se . Se o arquivo já não existir no diretório, retorna 0

Retorno

NomeTipoDescrição
nRetnuméricoCódigo de retorno da função FErase
retorna 0 caso tenha conseguido deletar, ou -1 caso não tenha deletado