asp打包类

所属分类: 网络编程 / ASP编程 阅读数: 776
收藏 0 赞 0 分享
<%
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>
更多精彩内容其他人还在看

asp知识整理笔记4(问答模式)

这是关于asp知识整理的最后一份笔记,希望大家仔细阅读。
收藏 0 赞 0 分享

ASP基础知识VBScript基本元素讲解

这篇文章主要介绍了ASP基础知识VBScript基本元素的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP编码和解码函数详解

这篇文章主要介绍了ASP编码和解码函数的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP显示页面执行时间的方法

这篇文章主要介绍了ASP显示页面执行时间的方法,在本地测试一下输出页面需要多少时间,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP基础入门第一篇(ASP技术简介)

本文将以 Active Server Pages 为中心,向你全面展示制作动态商业网站的步骤和技巧并通过大量的实例,让你在不断的理论和实践之中笑傲“网络”……
收藏 0 赞 0 分享

ASP基础入门第二篇(ASP基础知识)

这篇文章是ASP基础入门第二篇,第一篇展示了ASP动态网站设计的一些最基本的方法,相信通过实践各位对 ASP 已经有了最基本的了解,本文将进一步介绍ASP动态网站的一些基本技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP基础入门第三篇(ASP脚本基础)

通过前两篇的学习,相信各位已经对 ASP 的动态网站设计有了一个基本的概念和整体的印象。从本篇开始作者将从脚本语言的使用着手,由浅入深地带领大家探索 ASP 动态网站设计的真正奥秘。
收藏 0 赞 0 分享

ASP基础入门第四篇(脚本变量、函数、过程和条件语句)

大家在学习了脚本语言 VBScript 的变量、常量和过程的基本概念后,本期将继续向各位介绍 VBScript 的函数和语法。
收藏 0 赞 0 分享

ASP基础入门第五篇(ASP脚本循环语句)

在本文上两篇中,我们学习了脚本语言 VBScript 的变量、函数、过程和条件语句,本篇将继续给大家介绍 VBScipt 的循环语句,并对脚本语言在 ASP 中的应用加以总结。  
收藏 0 赞 0 分享

ASP基础入门第六篇(ASP内建对象Request)

从本篇开始作者从 ASP 内建对象着手,为大家详细剖析 ASP 的六个内建对象和各种组件的特性和方法,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多