Arquivos em subpastas

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Arquivos em subpastas

Mensagem 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.
:{
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
marsonluis
Usuário Nível 1
Usuário Nível 1
Mensagens: 1
Registrado em: 08 Jan 2019 12:31
Localização: Cachoeirinha/RS

Arquivos em subpastas

Mensagem 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
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Arquivos em subpastas

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Arquivos em subpastas

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Arquivos em subpastas

Mensagem 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
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Responder