You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
2.9 KiB
Plaintext

<%
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", _
"Cannot Call 'MatchingDirs' before " & _
"calling the 'Execute' method."
Exit Function
End If
MatchingDirs = gblMatches
End Function
Public Function CountMatches()
If Not bExecuted Then
Err.Raise 5199, "DirSrch Class", _
"Cannot Call 'CountMatches' before " & _
"calling the 'Execute' method."
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", _
"You must set the 'StartDirectory' property " & _
"before calling the 'Execute' method."
Exit Property
End If
StartDirectory = strTmp1
End Property
Public Property Get LookingFor()
If Len( strTmp2 ) = 0 Then
Err.Raise 5199, "DirSrch Class", _
"You must set the 'LookingFor' property " & _
"before calling the 'Execute' method."
Exit Property
End If
LookingFor = strTmp2
End Property
End Class
%>