搜索文件夹中的特定文件

时间:2012-01-13 10:59:43

标签: asp.net vb.net fancybox

您好我可以使用.jpg扩展程序搜索所有图像并将其传递到fancybox图库,问题是我只想要特定产品的图像 例如,如果一个产品有5个图像,并且它们保存为(productid_imagenumber.jpg),那么带有productid 99的产品将保存为99_1.jpg,99_2.jpg类似99_5.jpg, 我可以传递productID,但我找不到只是为了获取该productID的图像,而不是获取由下面的函数完成的所有图像:

Dim directory As DirectoryInfo = New System.IO.DirectoryInfo("C:Images\")
        Dim allImages() = directory.GetFiles("*.jpg", SearchOption.AllDirectories)
        Dim strContent As String = ""
        For Each image As FileInfo In allImages

            Dim strTemp As String = (String.Format("<img  src=""{0}"" />", image.Name))
           strContent = "<a class=""fancybox-thumb"" rel=""fancybox-thumb1"" href=""" & image.Name + image.Extension & """ title="""">" & _
            "<img src=""" & image.Name + image.Extension & """ alt="" /></a>"
        Next

        If Not String.IsNullOrEmpty(strContent) Then
            Return String.Format("<div id=""product-lightbox""><p>{0}</p></div>", strContent)
        Else
            Return String.Empty
        End If

    End Function

任何人都可以就如何做到这一点给出任何建议或帮助。

1 个答案:

答案 0 :(得分:1)

试试这个:

Dim images = (From img In directory.GetFiles("*.jpg", IO.SearchOption.AllDirectories)
              Where   img.Name.Contains("_") _
              AndAlso img.Name.Split("_"c)(0) = productID).ToList

好的,您使用的是.NET 2.0:

Dim allProductIDImages As New List(Of IO.FileInfo)
For Each img As IO.FileInfo In directory.GetFiles("*.jpg", IO.SearchOption.AllDirectories)
    If img.Name.Contains("_") Then
        Dim ID As String = img.Name.Split("_"c)(0)
        If ID.Equals(productID) Then
            allProductIDImages.Add(img)
        End If
    End If
Next

另一种 - 可能更快 - 的方法是让GetFiles预搜索:

Dim pattern As String = String.Format("*{0}_*.jpg", productID)
Dim allProductIDImages() As IO.FileInfo = _
       directory.GetFiles(pattern, IO.SearchOption.AllDirectories)