Поиск определенных файлов в папке - PullRequest
0 голосов
/ 13 января 2012

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

1 голос
/ 13 января 2012

Попробуйте:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...