VB.NET: Ik probeer een functie te schrijven die alle directories in een directorie teruggeeft.
Dat wil dus zeggen, ook alle sub directories, en de sub directories daarvan enz.
Ik heb vanalles geprobeerd maar dat lukt mij niet.
Laatste voorbeeldje code: lijkt de tweede keer getdirlist gewoon te negeren en nog een aantal rare dingen.
Hij geeft hier alleen de eerste subdirectorie weer, en die ook nog eens 2 keer. En de rest van de subdirectories dus niet, en en ook de subdirectories van die subdirectories niet.
Dat wil dus zeggen, ook alle sub directories, en de sub directories daarvan enz.
Ik heb vanalles geprobeerd maar dat lukt mij niet.
Laatste voorbeeldje code: lijkt de tweede keer getdirlist gewoon te negeren en nog een aantal rare dingen.
Hij geeft hier alleen de eerste subdirectorie weer, en die ook nog eens 2 keer. En de rest van de subdirectories dus niet, en en ook de subdirectories van die subdirectories niet.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim fnc As functions = New functions
Dim tmp As String
For Each tmp In fnc.GetDirList("c:\wix\")
TextBox1.AppendText(tmp + vbCrLf)
Next
End Sub
End Class
Public Class functions
Public Function GetDirList(ByVal path As String)
Dim tmp, val As String
Dim dirs(0) As String
Dim tmps() As String
Dim fc As functions = New functions
Dim t As Integer
tmp = Dir(path, FileAttribute.Directory Or FileAttribute.Hidden Or FileAttribute.System Or FileAttribute.ReadOnly Or FileAttribute.Archive)
While tmp <> ""
If (GetAttr(path + tmp) And FileAttribute.Directory) = FileAttribute.Directory Then
ReDim Preserve dirs(t)
dirs(t) = tmp
t = t + 1
tmps = fc.GetDirList(tmp)
For Each val In tmps
ReDim Preserve dirs(t)
dirs(t) = tmp + val
t = t + 1
Next
End If
tmp = Dir()
End While
GetDirList = dirs
End Function
End Class |