《拓文asp.net网站内容管理系统》官方演示站。
 设为首页  
 收藏本站
 作者:黄振安
 QQ:53854651
首 页 开源拓文.NET编程网站编程网页设计图形图像数据库软件工程留言本
    站内搜索:  
您现在的位置: 拓文网络 → 网站编程 → ASP → asp打包类[正文]

热 门 文 章

相 关 文 章
  • ASP.NET性能优化
  • ASP脚本循环语句
  • 在.NET框架应用程序中发送电子邮件
  • .net打包自动安装数据库
  • asp.net开发wap必备:更好的匹配手机设备
  • 用ashx动态生成文件
  • windows 2003下asp.Net站点无法使用用户名+密码的方
  • ASP.NET中17种正则表达式
  • 提高ASP.Net应用程序性能的十大方法
  • 一个通过web.Mail发送邮件的类
  • asp打包类
     
    [作者:不详    转贴自:不详    点击数:    更新时间:2006-3-14 9:11:13]

    <%
    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>


    首页 | 1 | 尾页  共 1 页
     
    hch004 打印本页 关闭窗口

         文 章 评 论
    评论人 查看该文章的评论 发表时间
       笔 名* : 0 50分 60分 70分 80分 90分 100分
    评论内容 *: (最多1000字。当前字数:0)


    没有相关评论,欢迎您参与!

    - 关于本站 - 网站帮助 - 下载声明 - 友情连接 - 网站地图 -
    Copyright © 2005-2006 myTopWin.Com. All Rights Reserved . [桂ICP备06004496号]