sexta-feira, 26 de outubro de 2007

DirCount()

Calcula o número de subpastas, arquivos e o espaço total em uma pasta.
Retorna uma array contendo os seguintes dados:
Array(0) => Número de subpastas
Array(1) => Número de arquivos
Array(2) => Espaço total em disco

Function
DirCount(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, El
Dim Arr(2), Aux

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

On Error Resume Next

Set D = FSO.GetFolder(DirName)
If Err Then
Err.Clear
Set FSO = Nothing
DirCount = Null
On Error GoTo 0
Exit Function
End If

On Error GoTo 0

Arr(0) = 0
Arr(1) = 0
Arr(2) = 0

For Each El In D.Files
Arr(1) = Arr(1) + 1
Arr(2) = Arr(2) + El.Size
Next

For Each El In D.SubFolders
Arr(0) = Arr(0) + 1
Aux = DirCount(El.Path)
Arr(0) = Arr(0) + Aux(0)
Arr(1) = Arr(1) + Aux(1)
Arr(2) = Arr(2) + Aux(2)
Next

Set D = Nothing
Set FSO = Nothing
DirCount = Arr

End Function

Nenhum comentário: