DirectoryRecurse

Post Reply
User avatar
Otto
Posts: 6403
Joined: Fri Oct 07, 2005 7:07 pm
Has thanked: 24 times
Been thanked: 2 times
Contact:

DirectoryRecurse

Post by Otto »

DirectoryRecurse

Function DirectoryRecurse change current directory

https://xharbour-developers.narkive.com ... -directory

Hello friends,
I put this here in case someone notices the same problem.
I had this behaviour yesterday on a Windows 2019 server.

Best regards,
Otto
********************************************************************
mod harbour - Vamos a la conquista de la Web
modharbour.org
https://www.facebook.com/groups/modharbour.club
********************************************************************
User avatar
karinha
Posts: 7935
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: DirectoryRecurse

Post by karinha »

Simples,

Code: Select all | Expand


   // Saber onde esta o executavel
   cDirExe := cFILEPATH(GETMODULEFILENAME(GETINSTANCE()))

FUNCTION EXCLUIR_PDFS_UNIDANFE( oMeter, oText, oDlg, lEnd )

   LOCAL cPath, cChave, cNfeExcluir, cPdfExcluir, cFileNfe, cFilePdf

   SELECT CADNFE

   IF CADPARAM->TPAMB = [1]  // em producao
      SET ORDER TO 03
   ELSE
      SET ORDER TO 01
   ENDIF

   GO TOP

   oMeter:nTotal := RecCount()

   oMeter:Refresh()

   oText:SetText( "Aguarde, Procurando Arquivos..." )

   wContador := 0

   WHILE .NOT. EOF()

      // caminho do diretorio
      cPath := cDirExe+"UNIDANFE\EMAIL\ANEXOS\"

      // Chave para pegar o .PDF e o .XML - Exemplo
      //cChave := "
35130144363265000120550000008000201008000200"
      cChave := CADNFE->CHAVEACES

      cFileNfe := ALLTRIM( cCHAVE ) + "
nfe.xml"     // EXCLUSAO DO .XML

      cNfeExcluir := DIRECTORYRECURSE( cPath + cFileNfe )

      cFilePdf := ALLTRIM( cCHAVE ) + "
-danfe.pdf"  // EXCLUSAO DO .PDF

      cPdfExcluir := DIRECTORYRECURSE( cPath + cFilePdf )

      IF LEN( cPdfExcluir ) == 0 .AND. LEN( cNfeExcluir ) == 0

         // NADA A FAZER
         oText:SetText( "
Nenhum Arquivo Encontrado..." )

         CONTINUE

      // ARQUIVO ENCONTRADO EM: C:\INST_NFE\UNIDANFE\EMAIL\ANEXOS\varios subdir
      ELSE

         cArq := "
"
         cExt := "
"
         cPat := "
"

         FOR nI = 1 to LEN(cPdfExcluir)

            hb_FNameSplit( cPdfExcluir[nI,1], @cPat, @cArq, @cExt )

            wContador = wContador + 1

         NEXT

         cPdfExcluirs := ALLTRIM( cPat+cArq+cExt )

         DELETEFILE( cPdfExcluirs )

         FOR nI = 1 to LEN(cNfeExcluir)

            hb_FNameSplit( cNfeExcluir[nI,1], @cPat, @cArq, @cExt )

            wContador = wContador + 1

         NEXT

         cNfeExcluirs := ALLTRIM( cPat+cArq+cExt )

         DELETEFILE( cNfeExcluirs )

      ENDIF

      SKIP

      oText:SetText( "
Eliminado Arquivo(s):  "        +               ;
                      Alltrim( STR( wContador, 6, 0 ) ) + "
 de:  " + ;
                      Alltrim( STR( WContador, 6, 0 ) )  + "
, Aguarde..." )

      oMeter:Set( RecNo() )

      SYSREFRESH()

   ENDDO

   GO TOP

   MsgInfo( OemToAnsi( "
PRONTO! ROTINA COMPLETADA COM SUCESSO" )+CRLF+ ;
            OemToAnsi( "
TECLE <ENTER> PARA CONTINUAR...      " ),      ;
            OemToAnsi( "
Rotina Completada com Sucesso...     " ) )

RETURN NIL


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
Otto
Posts: 6403
Joined: Fri Oct 07, 2005 7:07 pm
Has thanked: 24 times
Been thanked: 2 times
Contact:

Re: DirectoryRecurse

Post by Otto »

João, Thank you.
I will test your function.


Best regards,
Otto
********************************************************************
mod harbour - Vamos a la conquista de la Web
modharbour.org
https://www.facebook.com/groups/modharbour.club
********************************************************************
Post Reply