内容显示页
 
类别:ASP+VBS | 浏览(426) | 2007-5-26 11:44:43

下边这个存为Pack.asp,打包文件时运行
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%OptionExplicit%>
<%OnErrorResumeNext%>
<% Response.Charset="UTF-8"%>
<% Server.ScriptTimeout=99999999%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>
<title>文件打包程序</title>
</head>

<body>
<%


Dim ZipPathDir, ZipPathFile
Dim startime, endtime
'在此更改要打包文件夹的路径
ZipPathDir ="F:\www.yongfa365.com"'
ZipPathFile ="update.xml"
If Right(ZipPathDir,1)<>"\"Then ZipPathDir = ZipPathDir&"\"
'开始打包
CreateXml(ZipPathFile)
'遍历目录内的所有文件以及文件夹

Sub LoadData(DirPath)
Dim XmlDoc
    Dim fso 'fso对象
Dim objFolder '文件夹对象
Dim objSubFolders '子文件夹集合
Dim objSubFolder '子文件夹对象
Dim objFiles '文件集合
Dim objFile '文件对象
Dim objStream
    Dim pathname, TextStream, pp, Xfolder, Xfpath, Xfile, Xpath, Xstream
    Dim PathNameStr
    response.Write("=========="&DirPath&"==========<br>")
Set fso = server.CreateObject("scripting.filesystemobject")
Set objFolder = fso.GetFolder(DirPath)'创建文件夹对象

    Response.Write DirPath
    Response.flush

    Set XmlDoc = Server.CreateObject("Microsoft.XMLDOM")
    XmlDoc.load Server.MapPath(ZipPathFile)
    XmlDoc.async =False

'写入每个文件夹路径
Set Xfolder = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("folder"))
Set Xfpath = Xfolder.AppendChild(XmlDoc.CreateElement("path"))
    Xfpath.text = Replace(DirPath, ZipPathDir,"")
Set objFiles = objFolder.Files
    ForEach objFile in objFiles
        If LCase(DirPath & objFile.Name)<> LCase(Request.ServerVariables("PATH_TRANSLATED"))Then
            Response.Write "---<br/>"
            PathNameStr = DirPath &""& objFile.Name
            Response.Write PathNameStr &""
            Response.flush
            '================================================
'写入文件的路径及文件内容
Set Xfile = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("file"))
Set Xpath = Xfile.AppendChild(XmlDoc.CreateElement("path"))
            Xpath.text = Replace(PathNameStr, ZipPathDir,"")
'创建文件流读入文件内容,并写入XML文件中
Set objStream = Server.CreateObject("ADODB.Stream")
            objStream.Type=1
            objStream.Open()
            objStream.LoadFromFile(PathNameStr)
            objStream.position =0

Set Xstream = Xfile.AppendChild(XmlDoc.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
'================================================
EndIf
Next
    Response.Write "<p>"
    XmlDoc.Save(Server.Mappath(ZipPathFile))
Set Xfpath =Nothing
Set Xfolder =Nothing
Set XmlDoc =Nothing

'创建的子文件夹对象
Set objSubFolders = objFolder.SubFolders
    '调用递归遍历子文件夹
ForEach objSubFolder in objSubFolders
        pathname = DirPath & objSubFolder.Name &"\"
        LoadData(pathname)
Next
Set objFolder =Nothing
Set objSubFolders =Nothing
Set fso =Nothing

EndSub



'创建一个空的XML文件,为写入文件作准备

Sub CreateXml(FilePath)
'程序开始执行时间
    startime = Timer()
Dim XmlDoc, Root
    Set XmlDoc = Server.CreateObject("Microsoft.XMLDOM")
    XmlDoc.async =False
Set Root = XmlDoc.createProcessingInstruction("xml","version='1.0' encoding='UTF-8'")
    XmlDoc.appendChild(Root)
    XmlDoc.appendChild(XmlDoc.CreateElement("root"))
    XmlDoc.Save(Server.MapPath(FilePath))
Set Root =Nothing
Set XmlDoc =Nothing
    LoadData(ZipPathDir)
'程序结束时间
    endtime = Timer()
    response.Write("页面执行时间:"& FormatNumber((endtime - startime),3)&"秒")
EndSub


%>
</body>
</html>


下边这个存为Install.asp,安装XML打包文件时运行 <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <%OptionExplicit%> <%OnErrorResumeNext%> <% Response.Charset="UTF-8"%> <% Server.ScriptTimeout=99999999%> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/> <title>文件解包程序</title> </head> <body> <% Dim strLocalPath '得到当前文件夹的物理路径 strLocalPath = Left(Request.ServerVariables("PATH_TRANSLATED"), InStrRev(Request.ServerVariables("PATH_TRANSLATED"),"\")) Dim objXmlFile Dim objNodeList Dim objFSO Dim objStream Dim i, j Set objXmlFile = Server.CreateObject("Microsoft.XMLDOM") objXmlFile.load(Server.MapPath("update.xml")) If objXmlFile.readyState =4Then If objXmlFile.parseError.errorCode =0Then Set objNodeList = objXmlFile.documentElement.selectNodes("//folder/path") Set objFSO = CreateObject("Scripting.FileSystemObject") j = objNodeList.Length -1 For i =0To j If objFSO.FolderExists(strLocalPath & objNodeList(i).text)=FalseThen objFSO.CreateFolder(strLocalPath & objNodeList(i).text) EndIf Response.Write "创建目录"& objNodeList(i).text &"<br/>" Response.Flush Next Set objFSO =Nothing Set objNodeList =Nothing Set objNodeList = objXmlFile.documentElement.selectNodes("//file/path") j = objNodeList.Length -1 For i =0To 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 &"<br/>" Response.Flush .Close EndWith Set objStream =Nothing Next Set objNodeList =Nothing EndIf EndIf Set objXmlFile =Nothing response.Write "文件解包完毕" %> </body> </html>

引用本页地址:http://www.yongfa365.com/item/4115cd48767e3efe.html
 
 
相关链接
 
网友评论:
姓名: 记住我
网址:
邮箱:
内容:
验证码:  验证码图片看不清? 换张图试试
 
   
 
 
文章分类
 
   

power by :柳永法(yongfa365)'Blog | model by :hibaidu | css by:众网友 | 京ICP备07011491号   我要统计  

本空间赞助商:北京中科兴联信息技术有限公司

QQ:64049027    E-mail:64049027<at>qq.com