2012-01-13 3 views
0

Привет, я могу найти все изображения с расширением .jpg и передать их в галерею fancybox. Проблема в том, что я просто хочу, чтобы изображения конкретного продукта , например, если у продукта есть 5 изображений и они сохраняются как (productid_imagenumber.jpg), поэтому продукт с продуктом 99 будет сохранен как 99_1.jpg, 99_2.jpg аналогично 99_5.jpg, Я могу передать идентификатор продукта, но я не могу найти прочь, чтобы получить изображения что 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

Попробуйте это:

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) 
+0

это найдет все изображения этого продукта, для instanct, если я пройду 100, найдет ли он все изображения, связанные с профи номер канала 100, который равен 100_1.jpg, 100_2.jpg ...... –

+0

Попробуйте ... да, это должно быть. Первая часть - это идентификатор productID (как строка), а вторая часть - номер изображения (как строка), а запрос возвращает все изображения в виде списка (FileInfo). –

+0

вернет массив всех изображений или я должен определить его как тусклые изображения() –

Смежные вопросы