ASP利用XML打包指定文件夹 并上传到WEB目录中,自行解包

原创 2007年09月12日 16:16:00

'========================
'
文件1
'
Pack.asp
'
更改 Cpathname 这一变量
'
将在当前目录生成一个DATA.XML文件
'
将DATA.XML及文件2(install.asp)上传至WEB根目录
'
运行install.asp解包
'
手动删除以上两个文件 
'
========================
<Option Explicit %>
<On Error Resume Next %>
<%
Server.ScriptTimeout
=99999999
dim Cpathname
dim startime,endtime

'在此更改要打包文件夹的路径
Cpathname = "F:WEBsymr"

startime
=timer()
function bianli(path)
 
dim doc
    
dim fso            'fso对象
    dim objFolder      '文件夹对象
    dim objSubFolders  '子文件夹集合
    dim objSubFolder   '子文件夹对象
    dim objFiles       '文件集合
    dim objFile        '文件对象
 dim objStream
    
dim pathname,TextStream,pp,Xfolder,Xfpath,Xfile,Xpath,Xstream

    
set fso=server.CreateObject("scripting.filesystemobject")
    
set objFolder=fso.GetFolder(path)'创建文件夹对象
    
    Response.Write path
    Response.flush
    
 
Set doc = Server.CreateObject("MSxml2.DOMDocument")
 doc.load Server.MapPath(
"data.xml")
 doc.async
=false
 
 
'写入每个文件夹路径
 set Xfolder = doc.SelectSingleNode("//z-blog").AppendChild(doc.CreateElement("folder"))
 
Set Xfpath = Xfolder.AppendChild(doc.CreateElement("path"))
 Xfpath.text 
= replace(path,Cpathname,"")
    
    
set objFiles=objFolder.Files
    
for each objFile in objFiles
        Response.Write 
"
---"
     pp = path & "" & objFile.name
     
         Response.Write pp 
& "
"
      Response.flush

      
'================================================
      '写入文件的路径及文件内容
   set Xfile = doc.SelectSingleNode("//z-blog").AppendChild(doc.CreateElement("file"))
   
   
Set Xpath = Xfile.AppendChild(doc.CreateElement("path"))
   Xpath.text 
= replace(pp,Cpathname,"")
   
   
'创建文件流读入文件内容,并写入XML文件中
   Set objStream = Server.CreateObject("ADODB.Stream")
   objStream.Type 
= 1
   objStream.Open()
   objStream.LoadFromFile(pp)
   objStream.position 
= 0
   
   
Set Xstream = Xfile.AppendChild(doc.CreateElement("stream"))
   Xstream.SetAttribute 
"xmlns:dt","urn:schemas-microsoft-com:datatypes"
   
'文件内容采用二制方式存放
   Xstream.dataType = "bin.base64"
   Xstream.nodeTypedValue 
= objStream.Read()
   
   
set objStream=nothing
   
set Xpath = nothing
   
set Xstream = nothing
   
set Xfile = nothing
   
      
'================================================
    next
    Response.Write 
"<p>"
 
 doc.save server.mappath(
"data.xml")
 
set Xfpath = nothing
 
set Xfolder = nothing
    
set doc = nothing
    
 
'创建的子文件夹对象
 set objSubFolders=objFolder.Subfolders
    
'调用递归遍历子文件夹
    for each objSubFolder in objSubFolders
  pathname
=path + "" + objSubFolder.name
  bianli(pathname)
    
next 
    
    
set objFolder=nothing
    
set objSubFolders=nothing
    
set fso=nothing
end function

dim doc,objPI
'创建一个空的XML文件,为写入文件作准备
Set doc = Server.CreateObject("MSxml2.DOMDocument")
doc.async
=false
set objPI = doc.createProcessingInstruction("xml","version='1.0' encoding='UTF-8'")
doc.insertBefore objPI, doc.childNodes(
0)
doc.appendChild(doc.CreateElement(
"z-blog"))
doc.save server.mappath(
"data.xml")
set objPI = nothing
set doc = nothing
bianli(Cpathname) 
endtime
=timer()
%
> 
页面执行时间:
<%=FormatNumber((endtime-startime),3)%>
 

'=================================
'
文件2
'
install.asp
'
此文件改自z-blog安装文件
'
=================================
<%@ CODEPAGE=65001 %>
<Option Explicit %>
<On Error Resume Next %>
<% Response.Charset="UTF-8" %>
<html>
<head>
<title>文件解包程序</title>
</head>
<body>
<textarea name="content" cols="90" rows="20" style="border:0px;overflow:auto;border-width:0px;width:100%;background-color:#E8F3FF;" scrolling="auto">
<%
 
Dim strLocalPath
 
'得到当前文件夹的物理路径
 strLocalPath=Left(Request.ServerVariables("PATH_TRANSLATED"),InStrRev(Request.ServerVariables("PATH_TRANSLATED"),""))

 
Dim strDbPath
 
Dim objXmlFile
 
Dim objNodeList
 
Dim objFSO
 
Dim objStream
 
Dim i,j

 
Set objXmlFile = Server.CreateObject("Microsoft.XMLDOM")
 objXmlFile.load(Server.MapPath(
"data.xml"))

If objXmlFile.readyState=4 Then
 
If objXmlFile.parseError.errorCode = 0 Then

  
Set objNodeList = objXmlFile.documentElement.selectNodes("//folder/path")
  
Set objFSO = CreateObject("Scripting.FileSystemObject")

  j
=objNodeList.length-1
  
For i=0 To j
   
If objFSO.FolderExists(strLocalPath & objNodeList(i).text)=False Then
    objFSO.CreateFolder(strLocalPath 
& objNodeList(i).text)
   
End If
   Response.Write 
"创建目录" & objNodeList(i).text & vbCrlf
   Response.Flush
  
Next

  
Set objNodeList = objXmlFile.documentElement.selectNodes("//file/path")

  j
=objNodeList.length-1
  
For i=0 To j
   
Set objStream = CreateObject("ADODB.Stream")
   
With objStream
   .Type 
= 1
   .Open
   .Write objNodeList(i).nextSibling.nodeTypedvalue
   .SaveToFile strLocalPath 
& objNodeList(i).text,2
   Response.Write 
"释放文件" & objNodeList(i).text & vbCrlf
   Response.Flush
   .Close
   
End With
   
Set objStream = Nothing
  
Next
 
End If
End If
%
>
</textarea>
<%response.write "<script>alert('文件解包完毕!');</script>"%>

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

AndroidStudio如何打包生成realease版本的arr包,并上传到Nexus搭建的maven仓库,供项目远程依赖(二)

AndroidStudio如何打包生成realease版本的arr包,并上传到Nexus搭建的maven仓库,供项目远程依赖(二) 前提 Nexus已搭建好maven私服,以下带**的地方是需要自...

[QTP]vbscript对文件或文件夹进行打包与解包

vbscript对文件或文件夹进行打包与解包 在自动化测试工作中,有时会用到对文件或文件夹进行打包或解包,经过一番研究,我们可以通过CreateObject非常轻松地实现所需要的功能。 首先,需要...

Github建立文件夹并上传文件

Ubuntu下在github中新建文件夹并上传本地文件到这个文件夹中

使用maven打包项目并上传到Linux服务器

maven打包: 项目右键Run as-->Maven build...--> 出来下面的界面,注意红色部分的填写,Goals填写package表示打包,下面的Skip Tests表示打包时不执行单...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)