我有以下代码尝试获取父目录及其所有子目录中的所有文件名。
代码有效,但不是我想要的。即它将处理父目录中的所有文件以及" first-level"中的所有文件。子目录,但我希望能够进入所有级别的子目录。
我该怎么做?
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'ListBox1.Items.AddRange(IO.Directory.GetFiles("C:\"))
For Each Dir As String In IO.Directory.GetDirectories("C:\Program Files")
' ListBox1.Items.Add(Dir)
ListBox1.Items.AddRange(IO.Directory.GetFiles(Dir))
Next
End Sub
答案 0 :(得分:0)
以下是只需两行即可完成所需操作的代码:
Dim result As List(Of String) = System.IO.Directory.GetFiles("C:\Program Files", "*", System.IO.SearchOption.AllDirectories)
listBox1.DataSource = result
[Credit do @Carsten in this post,其中列出了子目录,我更改为列出文件并将其绑定到ListBox元素。我不知道递归解决方案已经在System.IO中实现了]
编辑1:发表评论建议。
Edit2: GetFiles不允许针对此问题的解决方法:当您尝试读取时,可以配置为使当前用户无法访问它们。更多细节(以及具有递归函数的解决方案)here。