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

Versões comparadas

Chave

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

...

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

    While !Empty( oResource:ExtractOneResource("CNTA330cResource := 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()
    EndDo
Return

  


...

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

Retorno:

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 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


...

IsResourceOk
Retorna se o arquivo de resource está ok, ou seja, presenta na pasta
de rootpath e atualizado em relação ao RPO

Retorno

NomeTipoDescrição
lRetlogicovarivael de controle se o resource está ok


...

GetLog
Retorna o log definido na classe

Retorno

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


...

GetRooPath
Metodo para retornar o caminho padrão de extração do arquivo
caso a propriedade extensao extensão esteja informada retorna tb também a extensao extensão como parte do caminho
, sempre retorna o caracter caractere de barra no final do caminho

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


...

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

Parâmetros

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


...

GetPathResFile
Retorna o nome do resource concatenado com o rootpath

Retorno

NomeTipoDescrição
cRetcaracterenome completo do path mais o resource


...

NeedReload
Metodo para verificar se o resource precisa ser extraido extraído novamente@param cMD5,

Parametro

NomeTipoDescriçãoObrigatório
cMD5caracterecodigo md5 a ser comparado, caso seja passado não será utilizado

...

o arquivo

...

físico para comparar com o md5 do RPO

...


Retorno

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


...

ExtractOneResource
    metodo para extrair um resource do RPO
    retorna true apenas caso tenha feito a extração,
    caso tenha retornado false é necessário utilizar o metodo isResourceOk
    para determinar se o resource está disponivel na pasta, junto com o metodo GetLog e GetCodResourceLog
@param cResource, Indica o nome do recurso no repositório a ser salvo em disco
        pode ser passado junto com a extensao
@para cExtensao, extensao do arquivo a ser extraido, caso seja passado 
        não deve ser passado no resource, a extensão será utilizada com uma pasta na extrasao do arquivo.
@param cMD5, codigo md5 do aruivo, caso seja passado não irá utilizar o md5 do arquivo fisico
        será utilizado esse parametro para determinar se o arquivo precisa ser atualizado
@param lUpdateExt, parametro interno, determina se de deve atualizar a varivel cExtensao da classe
@return logical, retorna true caso tenha extraido 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

...