asp打包类

<%
On Error Resume Next
Dim r
Set r = New Rar

r.Add Server.MapPath("a.gIf")
r.Add Server.MapPath("a.txt")
r.Add Server.MapPath("test")
r.Add Server.MapPath("file.asp")
r.packname = Server.MapPath("xxx.dat")
r.Pack
r.rootpath = Server.MapPath("xxx")
r.packname = Server.MapPath("xxx.dat")
r.UnPack

Response.Write(Err.Description)
Set r = Nothing
%>
<script Language="Vbscript" Runat="server">
'-----------------------------------------------------
' 描述: Asp打包类
' 作者: 小灰(quxiaohui_0@163.com)
' 链接: http://asp2004.net http://blog.csdn.net/iuhxq http://bbs.asp2004.net
' 版本: 1.0 Beta
' 版权: 本作品可免费使用,但是请勿移除版权信息
'-----------------------------------------------------
Class Rar
 Dim files,packname,s,s1,s2,rootpath,fso,f,buf
 Private Sub Class_Initialize
 Randomize
 Dim ranNum
 ranNum = Int(90000 * Rnd) + 10000
 packname = Year(Now)&Month(Now)&Day(Now)&Hour(Now)&Minute(Now)&Second(Now)&ranNum&".asp2004"

rootpath = Server.MapPath("./")

Set files = server.CreateObject("Scripting.Dictionary")
 Set fso = Server.CreateObject("Scripting.FileSystemObject")

Set s = server.CreateObject("ADODB.Stream"):s.Open:s.Type = 1
 Set s1 = server.CreateObject("ADODB.Stream"):s1.Open:s1.Type = 1
 Set s2 = server.CreateObject("ADODB.Stream"):s2.Open:s2.Type = 2
 End Sub

Private Sub Class_Terminate
 s.Close:Set s = Nothing
 s1.Close:Set s1 = Nothing
 s2.Close:Set s2 = Nothing

Set fso = Nothing
 End Sub

Public Sub Add(obj)
 If fso.FileExists(obj) Then
 Set f = fso.GetFile(obj)
 files.Add obj,f.Size
 ElseIf fso.FolderExists(obj) Then
 files.Add obj,-1
 Set f = fso.GetFolder(obj)
 Set fc = f.Files
 For Each f1 in fc
 Add(LCase(f1.Path))
 Next
 End If
 End Sub

Public Sub Pack
 Dim str
 a = files.Keys
 b = files.Items
 for i=0 to files.count-1
 If b(i)>=0 Then
 s.LoadFromFile(a(i))
 buf = s.Read
 If Not IsNull(buf) Then s1.Write(buf)
 End If
 str = str & b(i)&">"&Replace(a(i),rootpath,"")&vbCrLf
 next
 str = CStr(Right("000000000"&len(str),10)) & str
 buf = TextToStream(str)
 s.Position = 0
 s.Write buf
 s1.Position = 0
 s.Write s1.Read
 s.SetEOS
 s.SaveToFile(packname)
 End Sub

Public Sub UnPack

If Not fso.FolderExists(rootpath) Then
 fso.CreateFolder(rootpath)
 End If
 Dim size
 '转换文件大小
 s.LoadFromFile(packname)
 size = CInt(StreamToText(s.Read(10)))
 str = StreamToText(s.Read(size))
 arr = Split(str,vbCrLf)

for i=0 to Ubound(arr)-1
 arrFile = Split(arr(i),">")
 If arrFile(0) < 0 Then
 If Not fso.FolderExists(rootpath&arrFile(1)) Then
 fso.CreateFolder(rootpath&arrFile(1))
 End If
 ElseIf arrFile(0) >= 0 Then
 If fso.FileExists(rootpath&arrFile(1)) Then
 fso.DeleteFile(rootpath&arrFile(1))
 End If
 s1.Position = 0
 buf = s.Read(arrFile(0))
 If Not IsNull(buf) Then s1.Write(buf)
 s1.SetEOS
 s1.SaveToFile(rootpath&arrFile(1))
 End If
 Next
 End Sub

Public Function StreamToText(stream)
 If IsNull(stream) Then
 StreamToText = ""
 Else
 Set sm = server.CreateObject("ADODB.Stream"):sm.Open:sm.Type = 1
 sm.Write(stream)
 sm.Position = 0
 sm.Type = 2
 sm.charset = "gb2312"
 sm.Position = 0
 StreamToText = sm.ReadText()
 sm.Close:Set sm = Nothing
 End If
 End Function

Public Function TextToStream(text)
 If text="" Then
 TextToStream = "" '这里该如何写?空流?
 Else
 Set sm = server.CreateObject("ADODB.Stream"):sm.Open:sm.Type = 2:sm.charset = "gb2312"
 sm.WriteText(text)
 sm.Position = 0
 sm.Type = 1
 sm.Position = 0
 TextToStream = sm.Read
 sm.Close:Set sm = Nothing
 End If
 End Function
End Class
</script>

(0)

相关推荐

  • asp打包类

    <% On Error Resume Next Dim r Set r = New Rar r.Add Server.MapPath("a.gIf") r.Add Server.MapPath("a.txt") r.Add Server.MapPath("test") r.Add Server.MapPath("file.asp") r.packname = Server.MapPath("xxx.dat&qu

  • ASP JSON类文件的使用方法

    而且要使用某个节点的时候要好好的分析,节点的路径一级级的定位.而JSON最大的好处就是,在使用时候可以只需要将数据字符串声明为一个对象,就可以很方便的调用对象中的各成员.也方便在客户端使用Javascript直接调用程序端生成的数据字符串. 使用ASP的人都知道,ASP可以使用两种类型的脚本引擎,那就是VBSCRIPT和JSCRIPT.偶当初学习的时候就根本不知道JSCRIPT,如果知道的话我想我现在就没有必要这么麻烦的将JSON数据使用JSCRIPT转换后,才能在VBSCRIPT中使用.还好两

  • asp.net类序列化生成xml文件实例详解

    本文实例讲述了asp.net类序列化生成xml文件的方法.分享给大家供大家参考,具体如下: 根据设计的需求需要开发多个商品的API 原XML文件如下: <urlset> <url> <loc>http://www.xxxxx.com/todaydetials.aspx?id=143</loc> <data> <display> <website>爱购114</website> <siteurl>ht

  • 易心asp分页类 v1.0

    易心asp分页类v1.0 复制代码 代码如下: <%  class Ex_SplitPageCls  '==========================================================================  '易心asp分页类v1.0  '作者:易心 QQ:343931221  '个人网站 www.ex123.net www.bo56.com   '演示地址:www.ex123.net/show/page  '转载请保留此信息  '========

  • 叶子asp分页类

    名称: 叶子asp分页类 Name: ShowoPage(vbs class) RCSfile: ReadMe.txt Revision: 0.12.20051114.f Author: Yehe(叶子) Released: 2005-11-14 09:40:13 Descript: ASP分页类,支持access/mssql/mysql/sqlite Contact: QQ:311673 MSN:myehe@msn.com GT:mmyehe@gmail.com WebSite: http:/

  • asp缓存类

    至于缓存的作用,我想我也不用再多说了,它的作用已经很明显,特别是对于信息量非常大或是全数据库页面的网站,他能很好地利用主机的内存资源,加速ASP的执行效率,减轻服务器的负担,而动网在这一方面做得是最突出的,像他现在的dvbbs7.1.0版,更是在缓存的利用上更上一层楼,前后台大多的操作都和缓存有关,而现在动网里用的也就是迷城浪子的缓存类,下面列出动网的三大高手写的ASP缓存类 木鸟写的 复制代码 代码如下: '*******************************************

  • ASP JSON类源码分享

    复制代码 代码如下: <% '============================================================ ' 文件名称 : /Cls_Json.asp ' 文件作用 : 系统JSON类文件 ' 文件版本 : VBS JSON(JavaScript Object Notation) Version 2.0.2 ' 程序修改 : Cloud.L ' 最后更新 : 2009-05-12 '==================================

  • 功能不错的asp模板类代码附下载第1/4页

    此类支持循环替换,支持嵌套循环替换,支持多模板.  类的代码就不贴不来啰嗦了,在后面有下载,只贴出demo的代码. 一.模板只有一个循环块  模板文件主要代码  <head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title>{myname}模板-{webName}</title>  </head>

  • [ASP]使用类,实现模块化

    所有写程序的人都知道,当你逐渐对您要实现的功能展开的时候,很大的时候,第一天写的东西第二天就忘了写到那里了,很多的时候,不得不写上详细的程序开发笔记,这在ASP的系统开发中感觉尤其文件.函数复杂的时候,当我们打算对网站的一部分功能进行修改的时候,感觉无从下手或者感觉要修改的地方.这时候,如果您学过任何一门面向对象的编程的语言的话,自然想到怎么能把代码功能实现模块话,asp本质上不是面向对象的编程,但VBSCRPIT6.0提供了类,我们可以通过类实现代码的封装,实现模块话. 首先,我要在这里写上一

  • ASP分页类(支持多风格变换)

    这个分页使用的是0游标,也就是Rs.Open Sql,Conn,0,1.但是感觉也快不了多少,10万条数据的分页时间300多豪秒之间. 复制代码 代码如下: <% '****************************** '名称:分页类 '日期:2005/12/3 '作者:西楼冷月 '网址:www.xilou.net | www.chinaCMS.org '描述:无 '版权:转载请注名出处,作者 '****************************** Class Page Priv

随机推荐