2012-01-13 18 views
0

こんにちは、拡張子.jpgの画像をすべて検索し、fancyboxギャラリーに渡すことができます。問題は、商品に画像が5つある場合など、特定の商品IDの画像が必要です。それらは(productid_imagenumber.jpg)として保存されるので、productid 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 

:代わりに、以下の機能によって実行されるすべての画像を取得することのproductID、。

答えて

1

これを試してみてください:

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

[OK]を、あなたは.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

これは、そのproductidのすべての画像を見つけるでしょう、私が100を渡すと、instanctのために、それはプロに関連するすべての画像を見つけるでしょうか?ダクトID100は100_1.jpg、100_2.jpg ...... –

+0

それを試してみてください...そうです。最初の部分はproductID(文字列として)で、2番目の部分はimage-number(文字列として)です。クエリはAllsイメージをList(Of FileInfo)として返します。 –

+0

それはすべての画像の配列を返しますか、または私はそれを暗い画像( –

関連する問題