代码之家  ›  专栏  ›  技术社区  ›  arc95

获取名称首字母相同的所有文件或图像

  •  1
  • arc95  · 技术社区  · 7 年前

    我有1个带有文件名的列表框,使用以下代码获得:

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

    我想在PictureBox中加载一个同名图像列表。

    示例:如果我在列表框中选择“house”项,我希望获取(用于显示)所有以相同字符串开头的图像。 在本例中,必须在picturebox中显示文件“houses.jpg”、“house 1.jpg”、“house 2.jpg”、“house 2 beyard.jpg”、“house(4).jpg”、“house roof.jpg”和找到的任何其他文件(在同一目录中)。。。

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

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

    但我的目的是检测并使用多个具有相同零件名称的图像(如果存在)

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   Steve    7 年前

    将字符串添加到ListBox项集合后,可以使用Linq轻松检索所需的项

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

    现在您有了以 名称 列表当然,一个picturebox一次只显示一个图像,因此您可以遍历此列表(可能使用两个按钮在名称列表中向前或向后移动),然后依次在picturebox中显示图像。