asp下利用xml打包网站文件

2023-12-05 0 1,020

这个方法可以把整个文件夹打包到xml文件中,把这个xml文件文件和解包文件放在一起后,运行解包文件就可以把原来的文件释放出来,这样我们就可以把网站打包上传到虚拟主机,再运行解包文件就可以了。我在本地测试之选择了少部分文件,不知在文件很多的情况执行效率如何。 其实实现的思路也很简单,主要利用的是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>悠久资源网——文件解包程序_www.jb51.net</title> </head> <body> <% DimstrLocalPath \’得到当前文件夹的物理路径 strLocalPath=Left(Request.ServerVariables(\”PATH_TRANSLATED\”),InStrRev(Request.ServerVariables(\”PATH_TRANSLATED\”),\”\\\”)) DimobjXmlFile DimobjNodeList DimobjFSO DimobjStream Dimi,j SetobjXmlFile=Server.CreateObject(\”Microsoft.XMLDOM\”) objXmlFile.load(Server.MapPath(\”update.xml\”)) IfobjXmlFile.readyState=4Then IfobjXmlFile.parseError.errorCode=0Then SetobjNodeList=objXmlFile.documentElement.selectNodes(\”//folder/path\”) SetobjFSO=CreateObject(\”Scripting.FileSystemObject\”) j=objNodeList.length-1 Fori=0Toj IfobjFSO.FolderExists(strLocalPath&objNodeList(i).text)=FalseThen objFSO.CreateFolder(strLocalPath&objNodeList(i).text) EndIf Response.Write\”创建目录\”&objNodeList(i).text&\”<br/>\” Response.Flush Next SetobjFSO=nothing SetobjNodeList=nothing SetobjNodeList=objXmlFile.documentElement.selectNodes(\”//file/path\”) j=objNodeList.length-1 Fori=0Toj SetobjStream=CreateObject(\”ADODB.Stream\”) WithobjStream .Type=1 .Open .WriteobjNodeList(i).nextSibling.nodeTypedvalue .SaveToFilestrLocalPath&objNodeList(i).text,2 Response.Write\”释放文件\”&objNodeList(i).text&\”<br/>\” Response.Flush .Close EndWith SetobjStream=Nothing Next SetobjNodeList=nothing EndIf EndIf SetobjXmlFile=Nothing response.write\”文件解包完毕\” %> </body> </html> 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>文件打包程序_悠久资源网_www.jb51.net</title> </head> <body> <% DimZipPathDir,ZipPathFile Dimstartime,endtime \’在此更改要打包文件夹的路径 ZipPathDir=\”D:\\testasp\\dictionary\\xmlPacked\\scrollColor\”\’ ZipPathFile=\”update.xml\” ifright(ZipPathDir,1)<>\”\\\”thenZipPathDir=ZipPathDir&\”\\\” \’开始打包 CreateXml(ZipPathFile) \’遍历目录内的所有文件以及文件夹 subLoadData(DirPath) dimXmlDoc dimfso\’fso对象 dimobjFolder\’文件夹对象 dimobjSubFolders\’子文件夹集合 dimobjSubFolder\’子文件夹对象 dimobjFiles\’文件集合 dimobjFile\’文件对象 dimobjStream dimpathname,TextStream,pp,Xfolder,Xfpath,Xfile,Xpath,Xstream dimPathNameStr response.Write(\”==========\”&DirPath&\”==========<br>\”) setfso=server.CreateObject(\”scripting.filesystemobject\”) setobjFolder=fso.GetFolder(DirPath)\’创建文件夹对象 Response.WriteDirPath Response.flush SetXmlDoc=Server.CreateObject(\”Microsoft.XMLDOM\”) XmlDoc.loadServer.MapPath(ZipPathFile) XmlDoc.async=false \’写入每个文件夹路径 setXfolder=XmlDoc.SelectSingleNode(\”//root\”).AppendChild(XmlDoc.CreateElement(\”folder\”)) SetXfpath=Xfolder.AppendChild(XmlDoc.CreateElement(\”path\”)) Xfpath.text=replace(DirPath,ZipPathDir,\”\”) setobjFiles=objFolder.Files foreachobjFileinobjFiles iflcase(DirPath&objFile.name)<>lcase(Request.ServerVariables(\”PATH_TRANSLATED\”))then Response.Write\”—<br/>\” PathNameStr=DirPath&\”\”&objFile.name Response.WritePathNameStr&\”\” Response.flush \’================================================ \’写入文件的路径及文件内容 setXfile=XmlDoc.SelectSingleNode(\”//root\”).AppendChild(XmlDoc.CreateElement(\”file\”)) SetXpath=Xfile.AppendChild(XmlDoc.CreateElement(\”path\”)) Xpath.text=replace(PathNameStr,ZipPathDir,\”\”) \’创建文件流读入文件内容,并写入XML文件中 SetobjStream=Server.CreateObject(\”ADODB.Stream\”) objStream.Type=1 objStream.Open() objStream.LoadFromFile(PathNameStr) objStream.position=0 SetXstream=Xfile.AppendChild(XmlDoc.CreateElement(\”stream\”)) Xstream.SetAttribute\”xmlns:dt\”,\”urn:schemas-microsoft-com:datatypes\” \’文件内容采用二制方式存放 Xstream.dataType=\”bin.base64\” Xstream.nodeTypedValue=objStream.Read() setobjStream=nothing setXpath=nothing setXstream=nothing setXfile=nothing \’================================================ endif next Response.Write\”<p>\” XmlDoc.Save(Server.Mappath(ZipPathFile)) setXfpath=nothing setXfolder=nothing setXmlDoc=nothing \’创建的子文件夹对象 setobjSubFolders=objFolder.Subfolders \’调用递归遍历子文件夹 foreachobjSubFolderinobjSubFolders pathname=DirPath&objSubFolder.name&\”\\\” LoadData(pathname) next setobjFolder=nothing setobjSubFolders=nothing setfso=nothing endsub \’创建一个空的XML文件,为写入文件作准备 subCreateXml(FilePath) \’程序开始执行时间 startime=timer() dimXmlDoc,Root SetXmlDoc=Server.CreateObject(\”Microsoft.XMLDOM\”) XmlDoc.async=False SetRoot=XmlDoc.createProcessingInstruction(\”xml\”,\”version=\’1.0\’encoding=\’UTF-8\’\”) XmlDoc.appendChild(Root) XmlDoc.appendChild(XmlDoc.CreateElement(\”root\”)) XmlDoc.Save(Server.MapPath(FilePath)) SetRoot=Nothing SetXmlDoc=Nothing LoadData(ZipPathDir) \’程序结束时间 endtime=timer() response.Write(\”页面执行时间:\”&FormatNumber((endtime-startime),3)&\”秒\”) endsub %> </body> </html>

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 XML/RSS asp下利用xml打包网站文件 https://www.u-9.cn/biancheng/xmlrss/97221.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务