I am sure you all have your functions for a recursive directory/file listing, or file searching by wildcard \function for .net, but here is another one, works great. I use it to get a list of all *.aspx pages in \a project like this.
                Dim baseDirectory As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(“c:\projects\SSO\”)
                Dim x As New DSF.SSO.Other.FileSearch(baseDirectory, "*.aspx")
                Dim pageName As String = ""
                x.Search(, "*.aspx")
                lblMessage.Text = ""
                For Each f As System.IO.FileInfo In x.Files
                    pageName = f.FullName.Substring(baseDirectory.ToString.Length - 1, (f.FullName.Length - baseDirectory.ToString.Length) + 1)
                    pageName = pageName.Replace("\", "/")
                    DSF.SSO.Page.DAL.InsertPage(Val(txtPageGenAppID.Text), pageName.ToLower, pageName.Substring(100, pageName.Length - 4), pageName, 1, 1, 1)
                    lblMessage.Text += pageName + Chr(13)
                Next
The recusion class herehttp://www.vbforums.com/showthread.php?t=341919Or here:<codebox vbscript><% Public Class FileSearch Private Const DefaultFileMask As String = "*.*" Private Const DefaultDirectoryMask As String = "*" Private _InitialDirectory As DirectoryInfo Private _DirectoryMask As String Private _FileMask As String Private _Directories As New ArrayList Private _Files As New ArrayList Public Property InitialDirectory() As DirectoryInfo Get Return _InitialDirectory End Get Set(ByVal Value As DirectoryInfo) _InitialDirectory = Value End Set End Property Public Property DirectoryMask() As String Get Return _DirectoryMask End Get Set(ByVal Value As String) _DirectoryMask = Value End Set End Property Public Property FileMask() As String Get Return _FileMask End Get Set(ByVal Value As String) _FileMask = Value End Set End Property Public ReadOnly Property Directories() As ArrayList Get Return _Directories End Get End Property Public ReadOnly Property Files() As ArrayList Get Return _Files End Get End Property Public Sub New() End Sub Public Sub New(
ByVal BaseDirectory As String,
Optional ByVal FileMask As String = DefaultFileMask,
Optional ByVal DirectoryMask As String = DefaultDirectoryMask) Me.New(New IO.DirectoryInfo(BaseDirectory), FileMask, DirectoryMask) End Sub Public Sub New(
ByVal BaseDirectory As DirectoryInfo,
Optional ByVal FileMask As String = DefaultFileMask,
Optional ByVal DirectoryMask As String = DefaultDirectoryMask) _InitialDirectory = BaseDirectory _FileMask = FileMask _DirectoryMask = DirectoryMask End Sub Protected Overrides Sub Finalize() _Files = Nothing _Directories = Nothing MyBase.Finalize() End Sub Public Sub Search(
Optional ByVal BaseDirectory As DirectoryInfo = Nothing,
Optional ByVal FileMask As String = Nothing,
Optional ByVal DirectoryMask As String = Nothing) If Not IsNothing(BaseDirectory) Then _InitialDirectory = BaseDirectory End If If IsNothing(_InitialDirectory) Then Throw New ArgumentException("A Directory Must be specified!", "Directory") End If If IsNothing(FileMask) Then _FileMask = DefaultFileMask Else _FileMask = FileMask End If If IsNothing(DirectoryMask) Then _DirectoryMask = DefaultDirectoryMask Else _DirectoryMask = DirectoryMask End If DoSearch(_InitialDirectory) End Sub Private Sub DoSearch(ByVal BaseDirectory As DirectoryInfo) Try _Files.AddRange(BaseDirectory.GetFiles(_FileMask)) Catch u As UnauthorizedAccessException 'Siliently Ignore this error, there isnt any simple 'way to avoid this error. End Try Try Dim Directories() As DirectoryInfo = BaseDirectory.GetDirectories(_DirectoryMask) _Directories.AddRange(Directories) For Each di As DirectoryInfo In Directories DoSearch(di) Next Catch u As UnauthorizedAccessException 'Siliently Ignore this error, there isnt any simple 'way to avoid this error. End Try End Sub End Class</codebox>