quarta-feira, 16 de janeiro de 2008

ReadDir()

Lê o conteúdo de uma pasta e retorna uma array de arrays.
A array retornada tem essa estrutura:
Arr(...)(0) => Nome do objeto
Arr(...)(1) => Caminho físico completo do objeto
Arr(...)(2) => Tipo de objeto (1 = arquivo, 2 = pasta)
Retorna Null se ocorrer erro.
O DirName pode ser um caminho absoluto ou relativo.

Function ReadDir(ByVal DirName)

On Error Resume Next

If Mid(DirName, 2, 1) <> ":" Then
DirName = Server.MapPath(DirName)
End If
If Err Then Err.Clear

On Error GoTo 0

Dim FSO, D
Dim Arr, i, El, Aux(2)

Arr = Array()
i = -1

Set FSO = Server.CreateObject("Scripting.FileSystemObject")

On Error Resume Next

Set D = FSO.GetFolder(DirName)
If Err Then
Set FSO = Nothing
ReadDir = Null
Exit Function
End If

On Error GoTo 0

For Each El In D.SubFolders
Aux(0) = El.Name
Aux(1) = El.Path
Aux(2) = 2
i = i + 1
ReDim Preserve Arr(i)
Arr(i) = Aux
Next

For Each El In D.Files
Aux(0) = El.Name
Aux(1) = El.Path
Aux(2) = 1
i = i + 1
ReDim Preserve Arr(i)
Arr(i) = Aux
Next

Set D = Nothing
Set FSO = Nothing
ReadDir = Arr

End Function

Nenhum comentário: