程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> asp源碼打包成xml的工具

asp源碼打包成xml的工具

編輯:關於ASP編程
下邊這個存為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> 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved