PEGAR NOME DOS DIRETORIOS DE UM CAMINHO ESPECIFICO

USUARIO.EXCLUIDOS 08/04/2004 10:48:30
#19389
Pessoal,
Tenho um programa que gera arquivos em uma pasta que eu crio no sistema.
Só que isso irá mudar!! Eu terei um caminho fixo e dentro deste caminho tem várias pastas ...
Cada arquivo que eu gerar eu tenho que verificar se sua pasta existe no caminho especificado; se existir eu tenho que gravar o arquivo nesta pasta; se não eu crio a pasta e gravo o arquivo.

Meu problema é o seguinte:
Como eu posso pegar o nome de todas as pastas que contém no caminho especificado? Porque eu preciso saber se ela existe, antes de gravar o arquivo. A minha dificuldade é poder pegar todas as pastas e seus respectivos nomes ...

Falows.
USUARIO.EXCLUIDOS 08/04/2004 13:56:39
#19463
Resposta escolhida
Utilize o SystemFileObject. Faça uma referência [a biblioteca Microsoft Scripting Runtime e em seguida, utilize uma função como:

Public Function QuePastas(Caminho As String) As String()
Dim o As FileSystemObject
Dim oP As Folder
Dim oS As Folder
Dim sret() As String
Dim t As Long
Set o = New FileSystemObject
If o.FolderExists(Caminho) = True Then
Set oP = o.GetFolder(Caminho)
For Each oS In oP.SubFolders
t = t + 1
ReDim Preserve sret(t)
sret(t) = oS.Name
Next
End If
QuePastas = sret
t = Empty
Erase sret
Set oS = Nothing
Set oP = Nothing
Set o = Nothing
End Function


Para exemplificar o uso da função, vai esta aqui, colocada no evento click de um command:

Private Sub cmdBt1_Click()
Dim a() As String
Dim t As Long
Dim sMSG as String
a = QuePastas("F:\Windows")
For t = 0 To UBound(a) - 1
sMSG = sMSG & a(t) & vbcrlf
Next t
MsgBox sMSG
sMSG = Empty
t = Empty
Erase a
End Sub
Tópico encerrado , respostas não são mais permitidas