溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

在asp下如何通過xml打包網(wǎng)站文件

發(fā)布時間:2021-09-13 17:40:58 來源:億速云 閱讀:99 作者:小新 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)在asp下如何通過xml打包網(wǎng)站文件,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

代碼如下:

<%@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 
'得到當(dāng)前文件夾的物理路徑 
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 "創(chuàng)建目錄" & 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) 
'遍歷目錄內(nèi)的所有文件以及文件夾 
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)'創(chuàng)建文件夾對象 
    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 
                    '================================================ 
                    '寫入文件的路徑及文件內(nèi)容 
                   set Xfile = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("file")) 
                   Set Xpath = Xfile.AppendChild(XmlDoc.CreateElement("path")) 
                       Xpath.text = replace(PathNameStr,ZipPathDir,"") 
                   '創(chuàng)建文件流讀入文件內(nèi)容,并寫入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" 
                       '文件內(nèi)容采用二制方式存放 
                       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 
    '創(chuàng)建的子文件夾對象 
    set objSubFolders=objFolder.Subfolders 
        '調(diào)用遞歸遍歷子文件夾 
        for each objSubFolder in objSubFolders 
            pathname = DirPath & objSubFolder.name & "\" 
            LoadData(pathname) 
        next 
    set objFolder=nothing 
    set objSubFolders=nothing 
    set fso=nothing 
end sub 
'創(chuàng)建一個空的XML文件,為寫入文件作準(zhǔn)備 
sub CreateXml(FilePath) 
    '程序開始執(zhí)行時間 
    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) 
    '程序結(jié)束時間 
    endtime=timer() 
    response.Write("頁面執(zhí)行時間:" & FormatNumber((endtime-startime),3) & "秒") 
end sub 
%> 
</body> 
</html>

關(guān)于“在asp下如何通過xml打包網(wǎng)站文件”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI