fso删除文件:用FSO获得图片文件的信息来源: 发布时间:星期四, 2009年2月12日 浏览:96次 评论:0
<% \'\'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \'\'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \'\'::: BMP, GIF, JPG and PNG ::: \'\'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \'\'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \'\'::: ::: \'\'::: This function gets a specied number of s from any ::: \'\'::: file, starting at the off (base 1) ::: \'\'::: ::: \'\'::: Passed: ::: \'\'::: flnm => Filespec of file to read ::: \'\'::: off => Off at which to start reading ::: \'\'::: s => How many s to read ::: \'\'::: ::: \'\'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: function GetBytes(flnm, off, s) Dim objFSO Dim objFTemp Dim objTextStream Dim lngSize on error resume next Set objFSO = CreateObject(\"Scripting.FileObject\") \'\' First, we get the filesize Set objFTemp = objFSO.GetFile(flnm) lngSize = objFTemp.Size objFTemp = nothing fsoForReading = 1 Set objTextStream = objFSO.OpenTextFile(flnm, fsoForReading) off > 0 then strBuff = objTextStream.Read(off - 1) end s = -1 then \'\' Get All! GetBytes = objTextStream.Read(lngSize) \'\'ReadAll GetBytes = objTextStream.Read(s) end objTextStream.Close objTextStream = nothing objFSO = nothing end function \'\'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \'\'::: ::: \'\'::: Functions to convert two s to a numeric value (long) ::: \'\'::: (both little-endian and big-endian) ::: \'\'::: ::: \'\'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: function lngConvert(strTemp) lngConvert = clng(asc(left(strTemp, 1)) + ((asc(right(strTemp, 1)) * 256))) end function function lngConvert2(strTemp) lngConvert2 = clng(asc(right(strTemp, 1)) + ((asc(left(strTemp, 1)) * 256))) end function \'\'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \'\'::: ::: \'\'::: This function does most of the real work. It will attempt ::: \'\'::: to read any file, regardless of the extension, and will ::: \'\'::: identy it is a graphical image. ::: \'\'::: ::: \'\'::: Passed: ::: \'\'::: flnm => Filespec of file to read ::: \'\'::: width => width of image ::: \'\'::: height => height of image ::: \'\'::: depth => color depth (in number of colors) ::: \'\'::: strImageType=> type of image (e.g. GIF, BMP, etc.) ::: \'\'::: ::: \'\'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: function gfxSpex(flnm, width, height, depth, strImageType) dim strPNG dim strGIF dim strBMP dim strType strType = \"\" strImageType = \"(unknown)\" gfxSpex = False strPNG = chr(137) & chr(80) & chr(78) strGIF = \"GIF\" strBMP = chr(66) & chr(77) strType = GetBytes(flnm, 0, 3) strType = strGIF then \'\' is GIF strImageType = \"GIF\" Width = lngConvert(GetBytes(flnm, 7, 2)) Height = lngConvert(GetBytes(flnm, 9, 2)) Depth = 2 ^ ((asc(GetBytes(flnm, 11, 1)) and 7) + 1) gfxSpex = True left(strType, 2) = strBMP then \'\' is BMP strImageType = \"BMP\" Width = lngConvert(GetBytes(flnm, 19, 2)) Height = lngConvert(GetBytes(flnm, 23, 2)) Depth = 2 ^ (asc(GetBytes(flnm, 29, 1))) gfxSpex = True strType = strPNG then \'\' Is PNG strImageType = \"PNG\" Width = lngConvert2(GetBytes(flnm, 19, 2)) Height = lngConvert2(GetBytes(flnm, 23, 2)) Depth = getBytes(flnm, 25, 2) select asc(right(Depth,1)) 0 Depth = 2 ^ (asc(left(Depth, 1))) gfxSpex = True 2 Depth = 2 ^ (asc(left(Depth, 1)) * 3) gfxSpex = True 3 Depth = 2 ^ (asc(left(Depth, 1))) \'\'8 gfxSpex = True 4 Depth = 2 ^ (asc(left(Depth, 1)) * 2) gfxSpex = True 6 Depth = 2 ^ (asc(left(Depth, 1)) * 4) gfxSpex = True Depth = -1 end select strBuff = GetBytes(flnm, 0, -1) \'\' Get all s from file lngSize = len(strBuff) flgFound = 0 strTarget = chr(255) & chr(216) & chr(255) flgFound = instr(strBuff, strTarget) flgFound = 0 then exit function end strImageType = \"JPG\" lngPos = flgFound + 2 ExitLoop = false do while ExitLoop = False and lngPos < lngSize do while asc(mid(strBuff, lngPos, 1)) = 255 and lngPos < lngSize lngPos = lngPos + 1 loop asc(mid(strBuff, lngPos, 1)) < 192 or asc(mid(strBuff, lngPos, 1)) > 195 then lngMarkerSize = lngConvert2(mid(strBuff, lngPos + 1, 2)) lngPos = lngPos + lngMarkerSize + 1 ExitLoop = True end loop \'\' ExitLoop = False then Width = -1 Height = -1 Depth = -1 Height = lngConvert2(mid(strBuff, lngPos + 4, 2)) Width = lngConvert2(mid(strBuff, lngPos + 6, 2)) Depth = 2 ^ (asc(mid(strBuff, lngPos + 8, 1)) * 8) gfxSpex = True end end end function \'\'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \'\'::: Test Harness ::: \'\'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: \'\' To test, we\'\'ll just try to show all files with a .GIF extension in the root of C: Set objFSO = CreateObject(\"Scripting.FileObject\") Set objF = objFSO.GetFolder(\"c:\\\") Set objFC = objF.Files response.write \"<table border=\"\"0\"\" cellpadding=\"\"5\"\">\" For Each f1 in objFC instr(u(f1.Name), \".GIF\") then response.write \"<tr><td>\" & f1.name & \"</td><td>\" & f1.DateCreated & \"</td><td>\" & f1.Size & \"</td><td>\" gfxSpex(f1.Path, w, h, c, strType) = true then response.write w & \" x \" & h & \" \" & c & \" colors\" response.write \" \" end response.write \"</td></tr>\" end Next response.write \"</table>\" objFC = nothing objF = nothing objFSO = nothing %> 0
相关文章读者评论发表评论 |