您好我可以使用.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
任何人都可以就如何做到这一点给出任何建议或帮助。
答案 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)