Bestanden en mappen bepalen

Status
Niet open voor verdere reacties.
Ik heb het fouten afvangen nu ingebouwd.
Zo kom ik erachter dat de submappen nog steeds niet meegenomen worden.
Dus alleen de mappen welke in het basispad staan worden opgenomen.
Code:
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        On Error GoTo Fout

        Dim strFoutmelding As String
        'Dim directory As String = "D:\Projecten\projects\"
        Dim directory As String = "C:\"
        Dim intX As Integer

        For Each file As String In System.IO.Directory.GetFiles(directory)
            ListBox1.Items.Add(file)
        Next

        For Each folder As String In System.IO.Directory.GetDirectories(directory)
            For Each file In System.IO.Directory.GetFiles(folder)
                ListBox1.Items.Add(file)
            Next
        Next

        intX = MsgBox("Klaar!", vbOK)
        Exit Sub
Fout:
        strFoutmelding = Err.Description()
        intX = MsgBox("Fout:" & strFoutmelding, vbOK)
        Resume Next
    End Sub
De output is nu als volgt:
Code:
C:\hiberfil.sys
C:\Diskeeper\DiskData.dat
C:\Diskeeper\IFaastRegions.dat
C:\Diskeeper\IFaastRegions.dat
C:\Diskeeper\IFaastRegions.dat
C:\Program Files\desktop.ini
C:\Program Files (x86)\desktop.ini
C:\Program Files (x86)\desktop.ini
C:\Program Files (x86)\desktop.ini
C:\Users\desktop.ini
C:\Windows\.prj
C:\Windows\BcdLog.txt
C:\Windows\BDTSupport.dll
C:\Windows\bf............
.......ndows\write.exe
C:\Windows\Ð÷0
Zoals je zie wordt in de directory Program Files alleen een desktop.ini weergegeven, maar de submappen met inhoud ontbreekt.
En daar gaat het wel om.( zie vraagstelling bij start van dit item)

Op één of andere manier moet ik de boel zo gaan 'nesten' dat hij elke directory uitpluist.

Werner
 
Maak eens een nieuwe map aan (bijvoorbeeld op bureaublad) en gooi daar eens wat items in, subdirectories etc.

Gebruik dan eens mijn code van post #13. Dat moet als het goed is prima werken.

Stel dan je programma in op administratorrechten, en probeer het met dat D:\projecten\.


Je kunt fouten trouwens ook zo afvangen:

[CPP]Try
''// code
Catch ex As Exception
MsgBox(ex.ToString) ''// Of ex.Message
End Try
[/CPP]
 
Ik ben de directory's na gaan lopen.
Alles op lezen en schrijven gezet met volledige rechten. (wat ik al had als Administrator)
Verder de laatste tip van JoZ1 toegepast.

Nu doet hij het, maar vindt het raar hoe dit gegaan is.
In ieder geval bedankt voor alle hulp.

Werner
 
Ik heb een alternatief voor je, mocht je geintereseert zijn. :)

Code:
        For Each Folder In New IO.DirectoryInfo("PAD").GetDirectories
            ListBox1.Items.Add("FOLDER   " & Folder.FullName)

            For Each File As IO.FileInfo In New IO.DirectoryInfo(Folder.FullName).GetFiles("*.*", IO.SearchOption.AllDirectories)
                ListBox1.Items.Add("       FILE   " & File.FullName)

            Next
        Next
 
Heb ook wat geprobeerd met de code van The Mighty Atom... En daar kwam dit uit:

Code:
For Each Folder In New IO.DirectoryInfo("PAD").GetDirectories

            ListBox1.Items.Add("FOLDER   " & Folder.FullName)

            For Each File As IO.FileInfo In New IO.DirectoryInfo(Folder.FullName).GetFiles("*.*", IO.SearchOption.AllDirectories)
                On Error Resume Next

                ListBox1.Items.Add("       FILE   " & File.FullName)
            Next

            On Error Resume Next
        Next

Bij mij werkt dit, en het gaat gewoon door als er een error komt... Zo zie je dus alles wat je mag/kan bekijken.

Succes!:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan