【问题标题】:How I Fill listbox from 2 different sources (folders/directories)?如何从 2 个不同的来源(文件夹/目录)填充列表框?
【发布时间】:2021-08-29 08:12:18
【问题描述】:

我正在尝试将一些文档分类到列表框中,如果我的文档是扫描图片到文件夹的集合,它必须在 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

但我不能把它混在一起,每次列表框只显示一个或另一个来源。有什么推荐的吗?

【问题讨论】:

  • 使用 TreeView 而不是 ListBox。

标签: vb.net listbox datasource getfiles getdirectories


【解决方案1】:

您可以将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

【讨论】:

  • 您不需要在前两行调用.ToList 并创建List(Of String)。不必要的负载。只需获取字符串数组并将它们添加到dataSourceList
猜你喜欢
  • 1970-01-01
  • 2018-08-23
  • 1970-01-01
  • 1970-01-01
  • 2011-09-20
  • 1970-01-01
  • 2022-10-06
  • 2020-01-11
  • 2019-03-06
相关资源
最近更新 更多