温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

在asp下如何通过xml打包网站文件

发布时间:2021-09-13 17:40:58 来源:亿速云 阅读:109 作者:小新 栏目:编程语言

这篇文章将为大家详细讲解有关在asp下如何通过xml打包网站文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 
<% Option Explicit %> 
<% On Error Resume Next %> 
<% Response.Charset="UTF-8" %> 
<% Server.ScriptTimeout=99999999 %>
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>脚本之家——文件解包程序_www.jb51.net</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=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 & "<br/>" 
                    Response.Flush 
                Next 
            Set objFSO = nothing 
            Set objNodeList = nothing 
            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 & "<br/>" 
                            Response.Flush 
                            .Close 
                        End With 
                    Set objStream = Nothing 
                Next 
            Set objNodeList = nothing 
        End If 
    End If 
Set objXmlFile = Nothing 
response.write "文件解包完毕" 
%> 
</body> 
</html>

pack.asp 打包文件

代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 
<% Option Explicit %> 
<% On Error Resume Next %> 
<% Response.Charset="UTF-8" %> 
<% Server.ScriptTimeout=99999999 %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>文件打包程序_脚本之家_www.jb51.net</title> 
</head> 
<body> 
<% 
Dim ZipPathDir,ZipPathFile 
Dim startime,endtime 
'在此更改要打包文件夹的路径 
ZipPathDir = "D:\testasp\dictionary\xmlPacked\scrollColor"' 
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 
            for each 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 
                  '================================================ 
                end if 
            next 
    Response.Write "<p>" 
    XmlDoc.Save(Server.Mappath(ZipPathFile)) 
    set Xfpath = nothing 
    set Xfolder = nothing 
    set XmlDoc = nothing 
    '创建的子文件夹对象 
    set objSubFolders=objFolder.Subfolders 
        '调用递归遍历子文件夹 
        for each objSubFolder in objSubFolders 
            pathname = DirPath & objSubFolder.name & "\" 
            LoadData(pathname) 
        next 
    set objFolder=nothing 
    set objSubFolders=nothing 
    set fso=nothing 
end sub 
'创建一个空的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) & "秒") 
end sub 
%> 
</body> 
</html>

关于“在asp下如何通过xml打包网站文件”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI