2012-01-13 3 views
0

Salut, je peux rechercher toutes les images avec extension .jpg et le passer à la galerie fancybox, Le problème est que je veux juste les images de produit particulier par exemple si un produit a 5 images, et ils sont enregistrés comme (productid_imagenumber.jpg), donc un produit avec 99 productid sera enregistré comme 99_1.jpg, 99_2.jpg de même 99_5.jpg, je peux passer le productID mais je ne peux pas trouver un loin juste pour obtenir les images de que productID, au lieu d'obtenir toutes les images qui se fait par la fonction ci-dessous:Recherche de fichiers particuliers dans le dossier

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 

Quelqu'un peut-il donner sur la façon de faire une suggestion ou une assistance.

Répondre

1

Essayez ceci:

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

Ok, vous utilisez .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 

Une autre - peut-être plus rapide - l'approche est de laisser GetFiles pré-recherche:

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

Est-ce que cela va trouver toutes les images de ce productid, par exemple si je passe 100, trouvera-t-il toutes les images associées au pro conduit ID 100 qui est 100_1.jpg, 100_2.jpg ...... –

+0

Essayez-le ... oui, il devrait. La première partie est le productID (en tant que chaîne) et la deuxième partie le numéro d'image (en tant que chaîne) et la requête retourne toutes les images en tant que List (Of FileInfo). –

+0

va-t-il retourner un tableau de toutes les images ou devrais-je le définir comme des images sombres() –

Questions connexes