Página 1 de 1
Como localizar um arquivo informado
Enviado: 28 Jun 2017 17:00
por porter
Olá pessoal,
Existe algum comando no Harbour 3.2.0dev para procurar um arquivo em uma determinada pasta ?
Gostaria de informar por Exemplo "11402", se esse numero estiver contido no código chave,
atribuir o código inteiro para uma variável.
c:\AcbrMonitorPlus\Arqs\Retorno\35170108050974000196550010000114021000114020.xml
Harbour 3.2.0dev (console)
Como localizar um arquivo informado
Enviado: 29 Jun 2017 09:35
por Kapiaba
Fácil:
Código: Selecionar todos
// PEGA O .PDF DO DANFE GERADA PELO UNIDANFE.EXE
cPdfNfeUni := aFindFile( ALLTRIM( cCHAVE ) + "-danfe.pdf", ;
cDirExe+"unidanfe\email\anexos" )
// Exemplo
// aDir := aFindFile("23120711522734000157550010000000061000000060_10-cce.pdf", "c:\INST_NFE\unidanfe\email\anexos\" )
IF .NOT. EMPTY( cPdfNFeUni )
cArq3 := cPdfNFeUni[1]
cPdfNfeUni := ALLTRIM( cArq3 )
ELSE
cPdfNFeUni := "" // Para nao quebrar o envio de email
cArq := ""
cExt := ""
cPath := ""
cPath := cDirExe+"UNIDANFE\EMAIL\ANEXOS\"
//cFile := cChave+"-danfe.pdf" // exemplo
cFile := ALLTRIM( cCHAVE ) + "-danfe.pdf"
// Isto funciona na minha versao 2.7 superiores e RECURSIVE
aFile := DIRECTORYRECURSE( cPath + cFile )
If Len(aFile)==0
//? "Arquivo do DANFE Não Encontrado"
cPdfNFeUni := ""
Else
For nI := 1 to Len( aFile )
hb_FNameSplit( aFile[nI,1], @cPath, @cArq, @cExt )
//? cPath+" "+cArq+" "+cExt+" Perfeito Emotta!"
Next
aFiles := ALLTRIM( cPath+cArq+cExt )
cPdfNFeUni := aFiles
EndIf
ENDIF
Abs.
Como localizar um arquivo informado
Enviado: 29 Jun 2017 10:40
por JoséQuintas
Pelo que entendi, sabe a pasta, mas não sabe o nome do arquivo.
Mas o melhor seria colocar exatamente na posição do número, porque pode coincidir muita coisa, principalmente se fosse a nota número 1.
E pode ter emissão, cancelamento, carta de correção, NFE, CTE, MDFE, etc, com mesmo número.
Quanto mais detalhes da chave, mais chance de pegar o que realmente quer.
Como localizar um arquivo informado
Enviado: 29 Jun 2017 18:12
por Toledo
JoséQuintas escreveu:aFleList := Directory( "*11402*.xml" )
Não testei, mas será que isto não dá certo:
Código: Selecionar todos
aFleList := Directory( "*11402?-nfe.xml" )
ou
aFleList := Directory( "*11402?.xml" )
Abraços
Como localizar um arquivo informado
Enviado: 29 Jun 2017 20:05
por porter
Testei essas 3 formas, mas todas elas, traz como resultado todos os arquivos da pasta informada,
elas não trazem, como no exemplo somente o arquivo que contenha "12334"
Código: Selecionar todos
aFileList := Directory( cPastaFiles, "*12334*.xml" )
aFileList := Directory( cPastaFiles, "*12334?-nfe.xml" )
aFileList := Directory( cPastaFiles, "*12334?.xml" )
IF LEN(aFileList) > 0
xChave := LEFT(aFileList[1,1],44)
ENDIF
Harbour 3.2.0dev (console)
Como localizar um arquivo informado
Enviado: 29 Jun 2017 20:41
por Toledo
Amigo, seu código está errado. Teste este:
Código: Selecionar todos
PROCEDURE Main
LOCAL aFiles
aFiles := Directory( "*12334?-nfe.xml" ) //ou Directory( "*12334?.xml" )
AEval( aFiles, {|a| QOut( a[1] ) } )
RETURN
Testei aqui e funcionou certinho.
Abraços
Como localizar um arquivo informado
Enviado: 30 Jun 2017 08:10
por Jairo Maia
Olá Pessoal,
Da forma que o Toledo fez funciona corretamente, porém somente na pasta local. Se desejar pesquisar em outra pasta, precisa colocar a pasta e a máscara como um único parâmetro. Se usar 2 parâmetros falha, exemplo:
Como localizar um arquivo informado
Enviado: 30 Jun 2017 10:57
por porter
precisa colocar a pasta e a máscara como um único parâmetro.
Realmente, eu cometi esse erro.
E pode ter emissão, cancelamento, carta de correção, NFE, CTE, MDFE, etc, com mesmo número.
Quanto mais detalhes da chave, mais chance de pegar o que realmente quer.
No caso de Carta de Correção e Cancelamento, é o mesmo numero, mas estão em pastas
diferentes, por exemplo:
Carta de Correção está em Evento/CCe
Cancelamento está em Evento/Cancelamento