PEGAR NOME DOS DIRETORIOS DE UM CAMINHO ESPECIFICO
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.
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.
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
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