Página 1 de 1

Arquivos em subpastas

Enviado: 08 Jan 2019 09:54
por leandrolinauer
Bom dia
Estou com o seguinte problema:
Tenho uma solução em parceria que guarda os PDF das nfces em subpastas, exemplo abaixo:
\\PASTADOSISTEMA\PDFs\CNPJ\ANO\MES\DIA\
e eu tenho que localizar o PDF em questão dentro desta pasta PDFs mas não necessariamente informando CNPJ\ANOS\MES\DIA para localizar o arquivo em questão eu tenho o NOME DO ARQUIVO.PDF mas não tenho o caminho todo para localizar.

Pergunto?
Há alguma função que faria isto da seguinte forma por exemplo:
ofile:=FUNCAO("\\PASTADOSISTEMA\PDFs\" , "NOMEDOARQUIVO.PDF" ) e me retornar o caminho aonde esta o arquivo, exemplo:
ofile é igual "\\PASTADOSISTEMA\PDFs\CNPJ\2019\01\04\NOMEDOARQUIVO.PDF"

Grato a todos.
:{

Arquivos em subpastas

Enviado: 08 Jan 2019 13:38
por marsonluis
Podes criar uma função recursiva que retorne o caminho, e seus arquivos, usando a função ADir.

http://www.fivetechsoft.com/harbour-docs/api.html#adir

Arquivos em subpastas

Enviado: 08 Jan 2019 14:55
por Itamar M. Lins Jr.
Ola!
Tá criando 365 diretórios por ano ? Só para esse CNPJ ?
Tem várias maneiras hb_DToC() retorna a data com a picture que vc quiser.


Saudações,
Itamar M. Lins Jr.

Arquivos em subpastas

Enviado: 08 Jan 2019 22:56
por JoséQuintas
Montei direto no post só pra dar uma idéia, mais ou menos isto

Código: Selecionar todos

FindFile( "pathraiz\", "nome", @cPathFound )

FUNCTION FindFile( cPath, cFile, cPathFound )

   LOCAL aFiles, oELement

   IF File( cFile )
      cPathFound := cPath
     RETURN NIL
   ENDIF
   aFiles := Directory( cPath + "*.*", "D" )
   FOR EACH oElement IN aFiles
      IF "D" $ oElement[ F_ATTRIB ] .AND. oElement != "." .AND. oElement != ".."
         FindFile( cPath + oELement[ F_NAME ] + "\", cFile, @cPathFound )
         IF ! Empty( cPathFound )
            RETURN NIL
         ENDIF
      ENDIF
   NEXT          

   RETURN NIL

Arquivos em subpastas

Enviado: 09 Jan 2019 18:00
por leandrolinauer
Grato a todos pelo retorno.
Então realmente terei que montar uma pesquisa para encontrar o que eu preciso, achei que houvesse alguma função que me passou desapercebida.
Blz, muito grato.
:)Pos