Atlanta Custom Software Development 

   Search        Code/Page

User Login



Forgot the Password?
» Web Development
» Maintenance
» Data Integration/BI
» Information Management
» Regular Expr Tester
» Free Tools

Click here to copy the following block
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" _
  (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" _
  (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As _
Const MAX_PATH = 260

Private Type FILETIME
  dwLowDateTime As Long
  dwHighDateTime As Long
End Type
Private Type WIN32_FIND_DATA
  dwFileAttributes As Long
  ftCreationTime As FILETIME
  ftLastAccessTime As FILETIME
  ftLastWriteTime As FILETIME
  nFileSizeHigh As Long
  nFileSizeLow As Long
  dwReserved0 As Long
  dwReserved1 As Long
  cFileName As String * MAX_PATH
  cAlternate As String * 14
End Type

' Returns a one-based string array containing the files (or directories)
' located in the specified path
' the Path argument can contain wildcards, e.g. "C:\*.doc")

Function FilesToArray(ByVal Path As String, Optional ByVal IncludeDirs As _
  Boolean) As String()
  Dim lRet As Long
  Dim handle As Long
  Dim FindData As WIN32_FIND_DATA
  Dim FileName As String
  Dim fileCount As Long
  Dim ok As Boolean
  ReDim res(0) As String
  ' start the searching, exit if no file matches the spec
  handle = FindFirstFile(Path, FindData)
  If handle < 0 Then
    FilesToArray = res()
    Exit Function
  End If
    ' get this entry's name
    FileName = Left$(FindData.cFileName, InStr(FindData.cFileName, _
      vbNullChar) - 1)
    If (FindData.dwFileAttributes And vbDirectory) = 0 Then
      ' this is a file
      ok = Not IncludeDirs
    ElseIf FileName <> "." And FileName <> ".." Then
      ' this is a directory, but not a ./.. entry
      ok = IncludeDirs
      ' this is a ./.. entry
      ok = False
    End If
    If ok Then
      ' add this entry to the result
      fileCount = fileCount + 1
      If fileCount > UBound(res) Then
        ' make room in the array if necessary
        ReDim Preserve res(fileCount + 100) As String
      End If
      res(fileCount) = FileName
    End If
    ' read the next file, returns zero when there are no more files
    lRet = FindNextFile(handle, FindData)
  Loop While lRet

  ' stop enumeration
  FindClose handle
  ' discard unused array items and return to caller
  ReDim Preserve res(0 To fileCount) As String
  FilesToArray = res
End Function

Submitted By : Nayan Patel  (Member Since : 5/26/2004 12:23:06 PM)

Job Description : He is the moderator of this site and currently working as an independent consultant. He works with, SQL Server and other MS technologies. He is, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting.
View all (893) submissions by this author  (Birth Date : 7/14/1981 )

Home   |  Comment   |  Contact Us   |  Privacy Policy   |  Terms & Conditions   |  BlogsZappySys

© 2008 BinaryWorld LLC. All rights reserved.