问题:如何读取thumbs.db里的缩略图?
请先到这里下载一个控件
ThumbDBLib
A C# library for reading thumbs.db file
http://www.petedavis.net/MySite/DynPageView.aspx?pageid=31
引用dll,这里提供了 VB和C#代码,一个Thumbs.aspx,添加一个ID为plcThumbs 的@H_502_15@PlaceHolder
@H_301_19@
VB主要代码:
@H_502_15@. @H_502_15@" ) & @H_502_15@" @H_502_15@/thumbs.db @H_502_15@"
If System.IO.File.Exists(ThumbDb) Then
Dim ThumbLib As New ThumbDBLib.ThumbDB(ThumbDb)
If Not Request.QueryString( @H_502_15@" @H_502_15@thumb @H_502_15@" ) Is Nothing Then
Dim Thumb As String = Request.QueryString( @H_502_15@" @H_502_15@thumb @H_502_15@" )
Dim ThumbData As Byte () = ThumbLib.GetThumbData(Thumb)
Response.Clear()
Response.ContentType = @H_502_15@" @H_502_15@image/ @H_502_15@" & System.IO.Path.GetExtension(Thumb).ToLower.Replace( @H_502_15@" @H_502_15@. @H_502_15@" , @H_502_15@"" )
Response.BinaryWrite(ThumbData)
Response.Flush()
Response.End()
Else
For Each thumb As String In ThumbLib.GetThumbfiles
If System.IO.File.Exists(Server.MapPath( @H_502_15@" @H_502_15@. @H_502_15@" ) & @H_502_15@" @H_502_15@/ @H_502_15@" & thumb) Then
' CoulduseaLiteralcontrolhereifyouwantmore
' controloverthehtml.
Dim ThumbImage As New System.Web.UI.WebControls.Image
ThumbImage.ImageUrl = @H_502_15@" @H_502_15@thumbs.aspx?thumb= @H_502_15@" & Server.UrlEncode(thumb)
ThumbImage.ImageAlign = ImageAlign.Top
ThumbImage.AlternateText = thumb
ThumbImage.BorderStyle = BorderStyle.Outset
ThumbImage.BorderWidth = New Unit( 1 )
ThumbImage.Attributes.Add( @H_502_15@" @H_502_15@hspace @H_502_15@" , @H_502_15@" @H_502_15@4 @H_502_15@" )
ThumbImage.Attributes.Add( @H_502_15@" @H_502_15@vspace @H_502_15@" , @H_502_15@" @H_502_15@4 @H_502_15@" )
ThumbImage.Attributes.Add( @H_502_15@" @H_502_15@onclick @H_502_15@" , @H_502_15@" @H_502_15@window.location.href=' @H_502_15@" & thumb & @H_502_15@" @H_502_15@'; @H_502_15@" )
ThumbImage.Style.Add( @H_502_15@" @H_502_15@cursor @H_502_15@" , @H_502_15@" @H_502_15@hand @H_502_15@" )
plcThumbs.Controls.Add(ThumbImage)
End If
Next
End If
ThumbLib = Nothing
Else
Response.Write( @H_502_15@" @H_502_15@Thumbs.dbNotFound! @H_502_15@" )
End If
If System.IO.File.Exists(ThumbDb) Then
Dim ThumbLib As New ThumbDBLib.ThumbDB(ThumbDb)
If Not Request.QueryString( @H_502_15@" @H_502_15@thumb @H_502_15@" ) Is Nothing Then
Dim Thumb As String = Request.QueryString( @H_502_15@" @H_502_15@thumb @H_502_15@" )
Dim ThumbData As Byte () = ThumbLib.GetThumbData(Thumb)
Response.Clear()
Response.ContentType = @H_502_15@" @H_502_15@image/ @H_502_15@" & System.IO.Path.GetExtension(Thumb).ToLower.Replace( @H_502_15@" @H_502_15@. @H_502_15@" , @H_502_15@"" )
Response.BinaryWrite(ThumbData)
Response.Flush()
Response.End()
Else
For Each thumb As String In ThumbLib.GetThumbfiles
If System.IO.File.Exists(Server.MapPath( @H_502_15@" @H_502_15@. @H_502_15@" ) & @H_502_15@" @H_502_15@/ @H_502_15@" & thumb) Then
' CoulduseaLiteralcontrolhereifyouwantmore
' controloverthehtml.
Dim ThumbImage As New System.Web.UI.WebControls.Image
ThumbImage.ImageUrl = @H_502_15@" @H_502_15@thumbs.aspx?thumb= @H_502_15@" & Server.UrlEncode(thumb)
ThumbImage.ImageAlign = ImageAlign.Top
ThumbImage.AlternateText = thumb
ThumbImage.BorderStyle = BorderStyle.Outset
ThumbImage.BorderWidth = New Unit( 1 )
ThumbImage.Attributes.Add( @H_502_15@" @H_502_15@hspace @H_502_15@" , @H_502_15@" @H_502_15@4 @H_502_15@" )
ThumbImage.Attributes.Add( @H_502_15@" @H_502_15@vspace @H_502_15@" , @H_502_15@" @H_502_15@4 @H_502_15@" )
ThumbImage.Attributes.Add( @H_502_15@" @H_502_15@onclick @H_502_15@" , @H_502_15@" @H_502_15@window.location.href=' @H_502_15@" & thumb & @H_502_15@" @H_502_15@'; @H_502_15@" )
ThumbImage.Style.Add( @H_502_15@" @H_502_15@cursor @H_502_15@" , @H_502_15@" @H_502_15@hand @H_502_15@" )
plcThumbs.Controls.Add(ThumbImage)
End If
Next
End If
ThumbLib = Nothing
Else
Response.Write( @H_502_15@" @H_502_15@Thumbs.dbNotFound! @H_502_15@" )
End If
C#主要代码:
浏览效果如图: