获取具有相同名称的初始部分的所有文件或图像

时间:2018-02-07 21:54:21

标签: vb.net path listbox filenames picturebox

我有一个包含文件名的ListBox,使用以下代码获得:

Dim files As New List(Of String) files.AddRange(IO.Directory.GetFiles(Xpath, "*.txt"). Select(Function(f) IO.Path.GetFileNameWithoutExtension(f)))

我想在PictureBox中加载一个具有相同初始名称的图像列表。

示例:如果我选择" house"列表框中的项目,我想得到(用于显示)以相同字符串开头的所有图像。 在这个例子中,文件" houses.jpg"," house 1.jpg"," house 2.jpg" " house 2 backyard.jpg"," house(4).jpg"," house roof.jpg",并且任何其他人(在同一目录中)必须是在图片框中显示...

如何列出/获取(部分)相同的命名文件?在PictureBox中使用(我想这必须过滤并排除原始.txt以避免错误)。这些文件进入程序路径中的静态文件夹。它很容易加载每个文件的1个图像,名称完全相同,我使用:

PictureBox1.image = (Application.StartupPath & "\buildings\" & ListBox1.SelectedItem.ToString & ".jpg")

但是我的purpouse被检测并使用了多个具有相同部件名称的图像

也许第一步是创建一种列表......但我不知道。

1 个答案:

答案 0 :(得分:1)

您已将字符串添加到ListBox项目集合中,您可以使用Linq轻松地检索您想要的项目

Dim names = ListBox1.Items.
            Cast(Of String)().
            Where(Function(x) x.StartsWith("house")).ToList()

现在,您拥有以 names 列表中的建议constand开头的项目。当然,一个图片框一次只显示一个图像,所以由你来迭代这个列表(可能使用几个按钮在名单列表中向前或向后移动),然后在你的图片框中显示一个图像。其他

相关问题