PUBLICIDADE

Autor

diogobruno

Diogo Bruno de Lima Silvério

membro deste abril de 2007

Compartilhe e guarde

  • Rec6
  • StumbleUpon
  • ueba
  • linkk
  • dihitt
  • linkloko
  • linkto
  • Technorati
  • Simpy
  • del.icio.us
  • Faves: Fave It!

PUBLICIDADE

Enquete

O mercado de publicidade na web chegou no seu limite?

Busca recursiva de arquivos


Este sistema que desenvolvi utiliza recursão para iterar por todas as pastas e arquivos do pc Host, desde que possua autorização, em busca de um nome de arquivo definido pelo usuário.

Estão implementadas as buscas exatas, parciais, parciais + conteudo de pasta e inclusão de subpastas(ou não).
Ele totaliza os arquivos encontrados, o total de arquivos e pastas e o tempo que levou para a busca terminar.

Necessita apenas do FSO (File System Object).
<%
'Desenvolvido por Diogo Silvério(diogosilverio@yahoo.com.br)
'Fez alguma Alteração? Poste aqui sem tirar os créditos anteriores.
'A alteração ficou legal?? Manda pra mim o link
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------
'Esse sisteminha de busca recursiva é parte de um sistema maior que
'tenho trabalhado, é semelhante a um gerenciador de FTP, só que em ASP ^^
'[]'s e lembrem, esse código é livre para N-Finalidades, exceto venda a parte

Option Explicit
On Error Resume Next

Dim nomeBusca, pastaBusca, tipoBusca
Dim resultado,vasculhado, qtdPasta
Dim agora, maistarde, depoisdabusca ':PpPPP
Dim subpastas

agora = (hour(now) * 3600) + (Minute(now) * 60) + Second(now)

resultado = 0
vasculhado = 0
qtdPasta = 0

nomeBusca = Request.Form("txt_busca")
pastaBusca = Request.Form("txt_pasta")
subpastas = Request.Form("subpasta")
tipoBusca = Request.Form("opcao")

efetuaBusca "|-", nomeBusca, pastaBusca, tipoBusca

Sub efetuaBusca(nivel, nome, pastaBusca, tipoBusca)
	Dim objFso, objPasta, objArq
	Dim arquivo, pasta
	
	Set objFso = Server.CreateObject("Scripting.FileSystemObject")
	Set objPasta = objFso.getFolder(pastaBusca)
	
	if(subpastas = 1) then
		For each pasta in objPasta.SubFolders
			Response.Write(nivel & "<img src='pasta.gif' /> " & pasta.Name & "<br/>" & VbCRLF)
			efetuaBusca (nivel & "-"), nome, pasta, tipoBusca
			
			qtdPasta = qtdPasta + 1
		Next
	else
			For each pasta in objPasta.SubFolders
				Response.Write(nivel & "<img src='pasta.gif' /> " & pasta.Name & "<br/>" & VbCRLF)
				qtdPasta = qtdPasta + 1	
			next
	end if
	
	For each arquivo in objPasta.Files
		Select Case tipoBusca
			Case 0 : 
					if(nomeBusca = nomeBusca) then
						Response.Write(nivel & "<img src='arquivo.gif' /> " & arquivo.Name & "<br/>" & VbCRLF)
						resultado = resultado + 1
					end if
			Case 1 :
					if(InStr(LCase(arquivo.name), LCase(nomeBusca))) then
						Response.Write(nivel & "<img src='arquivo.gif' /> " & arquivo.Name & "<br/>" & VbCRLF)
						resultado = resultado + 1
					end if
			Case 2 :			
					if((LCase(arquivo.name) = LCase(nomeBusca)) or (InStr(LCase(arquivo.name), LCase(nomeBusca)))) then
						Response.Write(nivel & "<img src='arquivo.gif' /><font color='red'> " & arquivo.Name  & "</font><br/>" & VbCRLF)
						resultado = resultado + 1
					else
						Response.Write(nivel & "<img src='arquivo.gif' /> " & arquivo.Name & "<br/>" & VbCRLF)
					End if
		End Select
		vasculhado = vasculhado + 1
	Next
	
	Set objFso = nothing
	Set objPasta = nothing
End Sub

maistarde = (hour(now) * 3600) + (Minute(now) * 60) + Second(now)

depoisdabusca = maistarde - agora
%>
<div style="text-align:right"><strong><%=resultado%></strong> ocorrências de <strong>'<%=nomeBusca%>' </strong>em <strong><%=depoisdabusca%> s</strong>.<br>
<strong><%=vasculhado%></strong> arquivos em <strong><%=qtdPasta%> pastas.</strong></div>

ArquivoTipoTamanhoHits 
busca.zipArquivo ZIP3,2 Kb3799Baixar o Arquivo
Sim   Não   Este código foi útil para você?
NotaComentário
Ainda não foi enviado nenhum comentário.
Regras:
Os comentários seguem as seguintes regras:
  • Todos os comentários são enviados por membros cadastrados no site.
  • A pontuação de comentários de conteúdo do próprio membro não serão computados.
  • Os comentários serão pré-aprovados, porém a equipe do site revisará o conteúdo de todos os comentários podendo ser invalidados (inclusive a pontuação).
  • Os comentários precisam ter, obrigatóriamente, coerência sobre o conteúdo que será comentado.
  • O membro que atingir 5 comentários invalidados não poderá mais comentar dentro do site. Com isso o membro não poderá mais ganhar pontos com comentários.
  • Há um limite de 10 comentários por dia para cada membro.
  • Qualquer comentário após ter sido publicado poderá ser retirado através da opção ( denunciar)

Comente

     (ainda não tem cadastro? clique aqui!)


Máximo de 30 caracteres

Máximo de 255 caracteres
 

R&W Consulting - Soluções Web Hospedagem UOL HOST PagSeguro - solução para pagamentos online
© 2006-2009 R&W Informática Ltda. - Todos os direitos reservados.