• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

asp源码打包成xml的工具

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
下边这个存为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> 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Access模糊查询查不到数据的解决方法发布时间:2022-02-05
下一篇:
透彻掌握ASP分页技术很详细的分析发布时间:2022-02-05
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap