Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xanburzum

[Resolvido] pesquisas recursivamente para um diretório de caminho parc

Recommended Posts

As pesquisas recursivamente em todos os diretórios especificados para uma pasta ou diretório de caminho parcial . Use DirSrch para localizar pastas cujos caminhos não são conhecidos.

 

 

Propriedades:

============

object.StartDirectory = diretório inicial

StartDirectory especifica onde começa à procura diretórios. Todos diretórios sob o diretório irá começar a ser pesquisado recursivamente.

 

object.LookingFor = nome pasta ou parcial caminho

Lookingfor é o caminho ou nome de diretório para pesquisa. Tudo o conjunto em será compensado a qualquer parte de um directório caminho.

 

 

Métodos:

============

object.Execute()

Executa pesquisa. O prazo para a conclusão de uma pesquisa está dependente

diretório do início e do tamanho do disco a ser pesquisado. o Objeto deve ser

chamado antes de chamar qualquer outros métodos.

 

object.CountMatches ()

Retorna um long indicando o número de diretórios encontrados.

 

object.MatchingDirs ()

Retorna um conjunto (array) de diretório caminhos absolutos.

 

 

<%
Class DirSrch
Private strTmp1, strTmp2, gblMatches, bExecuted

Private Sub Class_Initialize()
 bExecuted = False
End Sub

Private Function FindDir(byVal directory, byVal DirToFind)
 if len( directory ) = 0 and len( dirtofind ) = 0 then 
  FindDir = "" & vbCrLf
  Exit Function
 end if
 dim objFSO, fldr, folder, tmp
 set objFSO = Server.CreateObject(_
	 "Scripting.FileSystemObject")
 set fldr = objfso.getfolder(directory)
 for each folder in fldr.subfolders
  if UCase( folder.name ) = _
	  UCase( DirToFind ) Then
   tmp = tmp & folder.path & vbCrLf
  elseif InStr( UCase( folder.path ), _
	  UCase( DirToFind ) ) Then
   tmp = tmp & folder.path & vbCrLf
  else
   ' tmp = join(tmp, vbCrLf)
   tmp = tmp & FindDir( _
	   folder.path, DirToFind )
  end if
 next
 set fldr = nothing
 set objfso = nothing
 FindDir = tmp
End Function

Public Sub Execute()
 dim a, b
 a = split( FindDir( StartDirectory, _
  LookingFor ), vbCrLf )
 b = ubound(a) - 1
 ReDim Preserve a(b)
 gblMatches = a
 bExecuted = True
End Sub

Public Function MatchingDirs()
 If Not bExecuted then
  Err.Raise 5199, "DirSrch Class", _
   "Não é possível chamar 'MatchingDirs' antes " & _
   "chamando a 'Execute' metodo."
  Exit Function
 End If
 MatchingDirs = gblMatches
End Function

Public Function CountMatches()
 If Not bExecuted then
  Err.Raise 5199, "DirSrch Class", _
   "Não é possível chamar 'CountMatches' antes " & _
   "chamando a'Execute' metodo."
  Exit Function
 End If
 CountMatches = CLng( ubound( gblMatches ) + 1 )
End Function

Public Property LET StartDirectory(byVal strInput)
 strTmp1 = strInput
End Property

Public Property LET LookingFor(byVal strInput)
 strTmp2 = strInput
End Property

Public Property GET StartDirectory()
 if Len( strTmp1 ) = 0 then 
  Err.Raise 5199, "DirSrch Class", _
   "Você deve definir o 'StartDirectory' propriedade " & _
   "antes de chamar o 'Execute' metodo."
  Exit Property
 end if
 StartDirectory = strTmp1
End Property

Public Property GET LookingFor()
 if Len( strTmp2 ) = 0 then 
  Err.Raise 5199, "DirSrch Class", _
   "Você deve definir a 'LookingFor' propriedade " & _
   "antes de chamar o 'Execute' metodo."
  Exit Property
 end if
 LookingFor = strTmp2
End Property
End Class
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.