我如何从 2 个不同的来源文件夹/目录填充列表框?

问题描述

我正在尝试将一些文档分类一个列表框中,如果我的文档是一个集合扫描图片文件夹中,它必须在 lisBox1 列出每个文件夹,如果我的文档是 .pdf 也必须添加

directo = "D:\books\

ListBox1.DataSource = IO.Directory.GetDirectories(directo,"*.*",IO.SearchOption.TopDirectoryOnly)
ListBox1.DataSource = IO.Directory.GetFiles(directo,"*.pdf",IO.SearchOption.TopDirectoryOnly)

我得到的结果:

D:\books\Book-A

D:\books\Book-B

D:\books\Book-C

D:\books\Book-E.pdf

D:\books\Book-F.pdf

D:\books\Book-G.pdf

但我不能把它混合起来,每次列表框只显示一个或另一个来源。有什么建议可以列出吗?

解决方法

您可以将 GetDirectoriesGetFiles 的返回值转换为 List(Of String),然后将两者合并在一起。然后可以将此合并列表分配给 ListBox 的 DataSource 属性。请参阅下面的示例。

Dim directories As List(Of String) = Directory.GetDirectories(directo,"*.*",SearchOption.TopDirectoryOnly).ToList()
Dim files As List(Of String) = Directory.GetFiles(directo,"*.pdf",SearchOption.TopDirectoryOnly).ToList()

Dim dataSourceList As New List(Of String)
dataSourceList.AddRange(directories)
dataSourceList.AddRange(files)

ListBox1.DataSource = dataSourceList