? ? ? ?這個(gè)方法可以把整個(gè)文件夾打包到xml文件中,把這個(gè)xml文件文件和解包文件放在一起后,運(yùn)行解包文件就可以把原來(lái)的文件釋放出來(lái),這樣我們就可以把網(wǎng)站打包上傳到虛擬主機(jī),再運(yùn)行解包文件就可以了。我在本地測(cè)試之選擇了少部分文件,不知在文件很多的情況執(zhí)行效率如何。
? ? ? ?其實(shí)實(shí)現(xiàn)的思路也很簡(jiǎn)單,主要利用的是xml文件可以存放二進(jìn)制數(shù)據(jù)的原理。
解包文件
nbsp;html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
文件打包程序_錯(cuò)新技術(shù)頻道_m.survivalescaperooms.comDim?ZipPathDir,ZipPathFile
Dim?startime,endtime
'在此更改要打包文件夾的路徑
ZipPathDir?=?"D:/testasp/dictionary/xmlPacked/scrollColor"'
ZipPathFile?=?"update.xml"
if?right(ZipPathDir,1)"/"?then?ZipPathDir=ZipPathDir&"/"
'開(kāi)始打包
CreateXml(ZipPathFile)
'遍歷目錄內(nèi)的所有文件以及文件夾
sub?LoadData(DirPath)
????dim?XmlDoc
????dim?fso????????????'fso對(duì)象
????dim?objFolder??????'文件夾對(duì)象
????dim?objSubFolders??'子文件夾集合
????dim?objSubFolder???'子文件夾對(duì)象
????dim?objFiles???????'文件集合
????dim?objFile????????'文件對(duì)象
????dim?objStream
????dim?pathname,TextStream,pp,Xfolder,Xfpath,Xfile,Xpath,Xstream
????dim?PathNameStr
????response.Write("=========="&DirPath&"==========
")
????set?fso=server.CreateObject("scripting.filesystemobject")
????set?objFolder=fso.GetFolder(DirPath)'創(chuàng)建文件夾對(duì)象
????Response.Write?DirPath
????Response.flush
????Set?XmlDoc?=?Server.CreateObject("Microsoft.XMLDOM")
????XmlDoc.load?Server.MapPath(ZipPathFile)
????XmlDoc.async=false
????'寫(xiě)入每個(gè)文件夾路徑
????set?Xfolder?=?XmlDoc.SelectSingleNode("http://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?"---
"
????????????????????PathNameStr?=?DirPath?&?""?&?objFile.name
????????????????????Response.Write?PathNameStr?&?""
????????????????????Response.flush
????????????????????'================================================
????????????????????'寫(xiě)入文件的路徑及文件內(nèi)容
???????????????????set?Xfile?=?XmlDoc.SelectSingleNode("http://root").AppendChild(XmlDoc.CreateElement("file"))
???????????????????Set?Xpath?=?Xfile.AppendChild(XmlDoc.CreateElement("path"))
???????????????????????Xpath.text?=?replace(PathNameStr,ZipPathDir,"")
???????????????????'創(chuàng)建文件流讀入文件內(nèi)容,并寫(xiě)入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?"
"
????XmlDoc.Save(Server.Mappath(ZipPathFile))
????set?Xfpath?=?nothing
????set?Xfolder?=?nothing
????set?XmlDoc?=?nothing
????'創(chuàng)建的子文件夾對(duì)象
????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)建一個(gè)空的XML文件,為寫(xiě)入文件作準(zhǔn)備
sub?CreateXml(FilePath)
????'程序開(kāi)始執(zhí)行時(shí)間
????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é)束時(shí)間
????endtime=timer()
????response.Write("頁(yè)面執(zhí)行時(shí)間:"?&?FormatNumber((endtime-startime),3)?&?"秒")
end?sub
%>
asp下使用xml打包網(wǎng)站文件就為大家介紹到這里,如果還有其他疑問(wèn),歡迎補(bǔ)充,有任何問(wèn)題也可以與錯(cuò)新編輯一起討論。