Como achar um arquivo no computador
Moderador: Moderadores
- helio
- Usuário Nível 3

- Mensagens: 175
- Registrado em: 04 Ago 2004 10:36
- Localização: São Bento do Una-PE
- Contato:
Como achar um arquivo no computador
Pessoal,
Tem como procurar um arquivos em todas as pasta do computador como no antigo DOS exemplo: dir arquivo.txt /s
Tem como procurar um arquivos em todas as pasta do computador como no antigo DOS exemplo: dir arquivo.txt /s
Helio Beltrao Jr.
msn: helio@htisistemas.com
msn: helio@htisistemas.com
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Como achar um arquivo no computador
Olá Hélio,
Claro! No XP basta usar a opção Pesquisar no botão INICIAR e configurar a pesquisa como desejar. No Seven basta clicar no botão INICIAR e digitar o que deseja procurar na caixa Pesquisar programas e arquivos
Claro! No XP basta usar a opção Pesquisar no botão INICIAR e configurar a pesquisa como desejar. No Seven basta clicar no botão INICIAR e digitar o que deseja procurar na caixa Pesquisar programas e arquivos
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Como achar um arquivo no computador
Se for o que parece, seria mais rápido e prático ter digitado o comando e saber que funciona do mesmo jeito.
Se for alternativa pra isso, no XP já foi feita.
E se for no WIndows 7, é só digitar lá encima à direita, quando abrir uma pasta.
Pessoalmente continuo preferindo o comando no prompt, é muito mais rápido.
E dependendo, melhor acrescentar mais parâmetros:
dir /s /b /p
/s - subdiretórios recursivamente
/b - mostra path + nome do arquivo, facilita enxergar localização
/p - com pausa, caso tenham muitos arquivos
Se for alternativa pra isso, no XP já foi feita.
E se for no WIndows 7, é só digitar lá encima à direita, quando abrir uma pasta.
Pessoalmente continuo preferindo o comando no prompt, é muito mais rápido.
E dependendo, melhor acrescentar mais parâmetros:
dir /s /b /p
/s - subdiretórios recursivamente
/b - mostra path + nome do arquivo, facilita enxergar localização
/p - com pausa, caso tenham muitos arquivos
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/
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/
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Como achar um arquivo no computador
Olá!
Penso que o colega não esteja com esta dúvida tão básica... creio que o que ele pretende é fazer isto programaticamente, via Harbour.
Penso que o colega não esteja com esta dúvida tão básica... creio que o que ele pretende é fazer isto programaticamente, via Harbour.
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
Como achar um arquivo no computador
arq:=DirectoryRecurse()
É similar a Directory(), só que considera sub-pastas.
A saída (ARQ) é uma matriz de "n" linhas (quantos forem os arquivos encontrados) e 5 colunas (nome, tamanho, data, hora e atributo). Se não for encontrado nenhum arquivo, ARQ será uma matriz vazia.
NOME contém o nome e o caminho do arquivo: "c:\pasta\pasta1\arq1.prg"
Exemplos:
arq := DirectoryRecurse("*.*")
Retorna todos os arquivos da pasta atual, incluindo os arquivos de subpastas existentes.
arq := DirectoryRecurse("*.prg")
Igual acima, mas só os arquivos de extensão PRG.
arq := DirectoryRecurse("c:\pasta1\pasta2\pr*.*")
Retorna todos os arquivos iniciados com "pr" da pasta "c:\pasta1\pasta2", incluindo os arquivos de subpastas existentes (sob pasta2).
É similar a Directory(), só que considera sub-pastas.
A saída (ARQ) é uma matriz de "n" linhas (quantos forem os arquivos encontrados) e 5 colunas (nome, tamanho, data, hora e atributo). Se não for encontrado nenhum arquivo, ARQ será uma matriz vazia.
NOME contém o nome e o caminho do arquivo: "c:\pasta\pasta1\arq1.prg"
Exemplos:
arq := DirectoryRecurse("*.*")
Retorna todos os arquivos da pasta atual, incluindo os arquivos de subpastas existentes.
arq := DirectoryRecurse("*.prg")
Igual acima, mas só os arquivos de extensão PRG.
arq := DirectoryRecurse("c:\pasta1\pasta2\pr*.*")
Retorna todos os arquivos iniciados com "pr" da pasta "c:\pasta1\pasta2", incluindo os arquivos de subpastas existentes (sob pasta2).
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Como achar um arquivo no computador
Obrigado Eolo, eu não conhecia essa função DirectoryRecurse(). Ela vem do xHarbour. Eu testei e ficou extremamente pesada. E em alguma vezes falou.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Como achar um arquivo no computador
Acho que sua observação ficou vaga e não dá pra concluir se vc acha que a função deve ser usada ou não.Eu testei e ficou extremamente pesada. E em alguma vezes falou.
Vc poderia postar como fez o teste (que demonstra a lentidão) e esclarecer no que a função falhou?
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Como achar um arquivo no computador
O meu comentário coincide com muitos outros feitos em outros fóruns que pesquisei na internet.
A conclusão de ser usada ou não vai de cada um, se quer adotar ou não.
Eu não estou te criticando por ter indicado algo (até agradeci por ter compartilhado), apenas relatando o que eu achei dessa "nova" função (nova pra mim). Então tomar uma decisão por causa do meu comentário, pode ser relativo.
O teste que eu fiz foi este:
Talvez seja pela enorme quantidade de arquivos.
Pode ser que a função tenha alguma limitação, porque após vários segundos de execução (monitorado pelo gerenciador de tarefas do SO), não veio valor algum.
Também testei com este código: aFiles:=DirectoryRecurse( "C:\windows\*" ) e levou mais de 4 minutos para exibir na tela, mas cansei e ainda está rodando...
Adicionei o executável.
A conclusão de ser usada ou não vai de cada um, se quer adotar ou não.
Eu não estou te criticando por ter indicado algo (até agradeci por ter compartilhado), apenas relatando o que eu achei dessa "nova" função (nova pra mim). Então tomar uma decisão por causa do meu comentário, pode ser relativo.
O teste que eu fiz foi este:
Código: Selecionar todos
#include <hmg.ch>
Function Main()
Local aFiles:=DirectoryRecurse( "C:\Fontes\HMG\*.prg" )
MsgDebug(aFiles)
// MsgList(aFiles)
Return NilPode ser que a função tenha alguma limitação, porque após vários segundos de execução (monitorado pelo gerenciador de tarefas do SO), não veio valor algum.
Também testei com este código: aFiles:=DirectoryRecurse( "C:\windows\*" ) e levou mais de 4 minutos para exibir na tela, mas cansei e ainda está rodando...
Adicionei o executável.
- Anexos
-
Demo2.rar- (1.06 MiB) Baixado 335 vezes
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Como achar um arquivo no computador
Fiz um teste aqui.
O resultado, ao fazer duas vezes em seguida é interessante.
mais de 3 minutos na primeira vez, e 5 segundos na segunda vez, pra 241.383 arquivos de resultado.
D:\>test
23:13:15
241383
23:16:51
D:\>test
23:16:55
241383
23:17:00
o fonte foi este:
O resultado, ao fazer duas vezes em seguida é interessante.
mais de 3 minutos na primeira vez, e 5 segundos na segunda vez, pra 241.383 arquivos de resultado.
D:\>test
23:13:15
241383
23:16:51
D:\>test
23:16:55
241383
23:17:00
o fonte foi este:
Código: Selecionar todos
PROCEDURE Main
? time()
aDir := DirectoryRecurse( "d:\inetpub\wwwroot\xmlpdf\*.xml" )
? Len( aDir )
? time()
RETURN
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/
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/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Como achar um arquivo no computador
Ola!
No xHb tem bug. No Harbour teve mudanças, mas pela data talvez no xHb já corrigiram tbm.
Itamar M. Lins Jr.
No xHb tem bug. No Harbour teve mudanças, mas pela data talvez no xHb já corrigiram tbm.
Saudações,2008-07-25 15:24 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/xhb/Makefile
* harbour/contrib/xhb/common.mak
+ harbour/contrib/xhb/dirrec.prg
+ added DirectoryRecurse() function. It's not exactly xHarbour
compatible as I wanted at the beginning. But when I begin
to carefully check what xHarbour exactly does then I dropped
the strict compatibility due to problems with xHarbour
implementation which have to be fixed. I left this note in the
dirrec.prg header:
This implementation uses different rules then xHarbour one.
It does not change current drive or current directory so
unlike the xHarbour version it's MT safe.
It also returns relative paths which are more similar to
DIRECTORY() function results so they can be easy used
directly in other code, f.e. to create archive without
absolute paths. Please note that user can easy convert
relative paths to absolte ones by simple adding curdir()
and/or cPath parameter passed to DirectoryRecurse() but
reverted conversion may not be possible in some cases.
The 3-rd xHarbour parameter <lCaseMach> is ignored because
harbour uses platform native rules to check filename mask
respecting SET FILECASE and SET DIRCASE settings.
xHarbour does not add "D" to attribute list used for directory
tree scanning so user always have to add it manually and later
it ignores it so it's not possible to extract file list with
directories entries. In Harbour it's fixed.
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- helio
- Usuário Nível 3

- Mensagens: 175
- Registrado em: 04 Ago 2004 10:36
- Localização: São Bento do Una-PE
- Contato:
Como achar um arquivo no computador
Bom dia,
Pessoal o que estava querendo dizer e no modo de programacao XHARBOUR e vi alguns exemplos mais gostaria de saber era o seguinte uma pessoa baixa um arquivo de um email ai gostaria de pesquisa em todo o HD para pegar este arquivo sem saber onde foi baixado tem como ?
Pessoal o que estava querendo dizer e no modo de programacao XHARBOUR e vi alguns exemplos mais gostaria de saber era o seguinte uma pessoa baixa um arquivo de um email ai gostaria de pesquisa em todo o HD para pegar este arquivo sem saber onde foi baixado tem como ?
Helio Beltrao Jr.
msn: helio@htisistemas.com
msn: helio@htisistemas.com
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
Como achar um arquivo no computador
Olá, veja o comando:
É muito mais rápido que o Anterior.
abs.
Código: Selecionar todos
hb_FNameSplit()
abs.
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Como achar um arquivo no computador
Olá Pessoal,
Creio que para procurar um arquivo em toda a unidade não há mesmo uma forma rápida de faze-lo. Penso também que a melhor e mais rápida forma seria usar a sugestão do José, e direcionando o resultado para um arquivo. Exemplo (xHarbour):
Depois trazer à memória o arquivo Result.Tmp e verificar se o arquivo foi encontrado, e se sim tratar a ação. Mesmo assim, pode ser encontrado mais de um arquivo com mesmo nome.
Kapiaba, Creio que essa função não atende a necessidade do autor do tópico, porque não tem como varrer o disco todo. Outrossim, como funciona essas funções? Você tem algum exemplo prático? Veja a sintaxe aqui: https://vivaclipper.wordpress.com/tag/curdrive/
Eu particularmente nunca entendi como usar nenhuma delas. Sempre retorna resultados estranhos...
Creio que para procurar um arquivo em toda a unidade não há mesmo uma forma rápida de faze-lo. Penso também que a melhor e mais rápida forma seria usar a sugestão do José, e direcionando o resultado para um arquivo. Exemplo (xHarbour):
Código: Selecionar todos
Run Dir \Clientes.Prg /S /B > Result.TmpKapiaba, Creio que essa função não atende a necessidade do autor do tópico, porque não tem como varrer o disco todo. Outrossim, como funciona essas funções? Você tem algum exemplo prático? Veja a sintaxe aqui: https://vivaclipper.wordpress.com/tag/curdrive/
Eu particularmente nunca entendi como usar nenhuma delas. Sempre retorna resultados estranhos...
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
Como achar um arquivo no computador
Boa tarde Jairo, veja se ajuda, aqui funciona perfeito.
Abs.
Código: Selecionar todos
#include "FiveWin.ch" // basta comentar para modo console
FUNCTION Main()
LOCAL cArq, cExt, cPath, cFile, cEncontrou, nI
cArq := ""
cExt := ""
cPath := ""
cPath := "C:\FWH1306\SAMPLES\"
cFile := "TESTE.PRG"
// aFile := DIRECTORYRECURSE( cPath + cFile )
// ou:
aFile := DIRECTORY( cPath + cFile )
If Len(aFile)==0
? "Arquivo Não Encontrado"
Else
For nI := 1 to Len( aFile )
hb_FNameSplit( aFile[nI,1], @cPath, @cArq, @cExt )
? cPath+" "+cArq+" "+cExt+" Perfeito, encontrou!"
Next
aFiles := ALLTRIM( cPath+cArq+cExt )
cEncontrou := aFiles
IF FILE( cEncontrou ) // Encontrou, mostra...
? cEncontrou
ENDIF
EndIf
RETURN NIL
Como achar um arquivo no computador
Bão, vou ser, de novo, o "chato".Pessoal o que estava querendo dizer e no modo de programacao XHARBOUR e vi alguns exemplos mais gostaria de saber era o seguinte uma pessoa baixa um arquivo de um email ai gostaria de pesquisa em todo o HD para pegar este arquivo sem saber onde foi baixado tem como ?
Está-se discutindo performance desta e daquela função, dentro de um SISTEMA, mas vou parar pra questionar a UTILIDADE da solução do problema, programaticamente.
"O usuário baixa um arquivo do e-mail, não sabe onde salvou e depois o SISTEMA da empresa tem que procurar o arquivo?". Hã? Como assim?
Algo como "O filho do usuário quer saber onde o Governor of Poler 2 salva os arquivos, aí o cliente acessa o sistema da empresa e acha os arquivos?". Hã?
A pergunta inicial do Helio até poderia ter algum sentido, tanto que respondi. Mas depois deste último post dele, sei não. Imagino o financeiro, debruçado sobre o Contas a Pagar, tendo que parar porque o presidente da empresa quer saber onde o Gamão do Windows 7 salvou os scores dele...
Pra mim não faz sentido.