Das XML-ASP-Quellcode-Paketierungstool von Liu Yongfa ist in eine separate XML-Datei gepackt. Sie können es direkt auf dem Server installieren und als Pack.asp speichern. Führen Sie es beim Packen der Datei aus.
Kopieren Sie den Codecode wie folgt:
<%@LANGUAGE=VBSCRIPT CODEPAGE=65001%>
<%OptionExplicit%>
<%OnErrorResumeNext%>
<% Response.Charset=UTF-8%>
<% Server.ScriptTimeout=99999999%>
<!DOCTYPEhtmlPUBLIC-//W3C//DTDXHTML1.0Transitional//ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<htmlxmlns=http://www.w3.org/1999/xhtml>
<Kopf>
<metahttp-equiv=Content-Typecontent=text/html;
<title>Dateipaketierungsprogramm</title>
</head>
<Körper>
<%
Dimmen Sie ZipPathDir, ZipPathFile
Dunkle Startzeit, Endzeit
'Ändern Sie hier den Pfad des zu packenden Ordners
ZipPathDir =F:/www.yongfa365.com'
ZipPathFile =update.xml
If Right(ZipPathDir,1)<>/Then ZipPathDir = ZipPathDir&/
„Fangen Sie an zu packen.“
CreateXml(ZipPathFile)
'Durchsuchen Sie alle Dateien und Ordner im Verzeichnis
Sub LoadData(DirPath)
DimXmlDoc
Dim fso 'fso-Objekt
Dim objFolder 'Ordnerobjekt
Dim objSubFolders 'Unterordnersammlung
Dim objSubFolder 'Unterordnerobjekt
Dim objFiles 'Dateisammlung
Dim objFile 'Dateiobjekt
Dimmen Sie objStream
Pfadname, TextStream, pp, Xfolder, Xfpath, Xfile, Xpath, Xstream abblenden
DimPathNameStr
Response.Write(==========&DirPath&==========<br>)
Setze fso = server.CreateObject(scripting.filesystemobject)
Set objFolder = fso.GetFolder(DirPath)'Erstellen Sie ein Ordnerobjekt
Response.Write DirPath
Response.flush
Setze XmlDoc = Server.CreateObject(Microsoft.XMLDOM)
XmlDoc.load Server.MapPath(ZipPathFile)
XmlDoc.async =False
'Schreiben Sie jeden Ordnerpfad
Setze Xfolder = XmlDoc.SelectSingleNode(//root).AppendChild(XmlDoc.CreateElement(folder))
Setze Xfpath = Xfolder.AppendChild(XmlDoc.CreateElement(path))
Xfpath.text = Ersetzen(DirPath, ZipPathDir,)
Setzen Sie objFiles = objFolder.Files
ForEach objFile in objFiles
Wenn LCase(DirPath & objFile.Name)<> LCase(Request.ServerVariables(PATH_TRANSLATED))Dann
Response.Write ---<br/>
PathNameStr = DirPath && objFile.Name
Response.Write PathNameStr &
Response.flush
'=============================================
'Schreiben Sie den Pfad und den Dateiinhalt der Datei
Setze Xfile = XmlDoc.SelectSingleNode(//root).AppendChild(XmlDoc.CreateElement(file))
Setze Xpath = Xfile.AppendChild(XmlDoc.CreateElement(path))
Xpath.text = Ersetzen(PathNameStr, ZipPathDir,)
'Erstellen Sie einen Dateistream, um den Dateiinhalt zu lesen und in die XML-Datei zu schreiben
Setze objStream = Server.CreateObject(ADODB.Stream)
objStream.Type=1
objStream.Open()
objStream.LoadFromFile(PathNameStr)
objStream.position =0
Setze Xstream = Xfile.AppendChild(XmlDoc.CreateElement(stream))
Xstream.SetAttribute xmlns:dt,urn:schemas-microsoft-com:datatypes
'Der Dateiinhalt wird im Binärmodus gespeichert
Xstream.dataType =bin.base64
Xstream.nodeTypedValue = objStream.Read()
Setze objStream =Nothing
Setze Xpath =Nothing
Setzen Sie Xstream =Nothing
Setze Xfile=Nothing
'=============================================
EndIf
Nächste
Response.Write <p>
XmlDoc.Save(Server.Mappath(ZipPathFile))
Setze Xfpath =Nothing
Setze Xfolder =Nothing
Legen Sie XmlDoc =Nothing fest
'Unterordnerobjekt erstellt
Setze objSubFolders = objFolder.SubFolders
'Aufruf zum rekursiven Durchlaufen von Unterordnern
ForEach objSubFolder in objSubFolders
Pfadname = DirPath & objSubFolder.Name &/
LoadData(Pfadname)
Nächste
Setze objFolder =Nothing
Setze objSubFolders =Nothing
Setze fso=Nothing
EndSub
'Erstellen Sie eine leere XML-Datei, um das Schreiben in die Datei vorzubereiten
Sub CreateXml(FilePath)
'Ausführungszeit des Programmstarts
starttime = Timer()
Dimmen Sie XmlDoc, Root
Setze XmlDoc = Server.CreateObject(Microsoft.XMLDOM)
XmlDoc.async =False
Set Root = XmlDoc.createProcessingInstruction(xml,version='1.0'kodierung='UTF-8')
XmlDoc.appendChild(Root)
XmlDoc.appendChild(XmlDoc.CreateElement(root))
XmlDoc.Save(Server.MapPath(FilePath))
Root = Nichts setzen
Legen Sie XmlDoc =Nothing fest
LoadData(ZipPathDir)
„Endzeit des Programms
endtime = Timer()
Response.Write(Seitenausführungszeit: & FormatNumber((Endzeit - Startzeit),3)& Sekunden)
EndSub
%>
</body>
</html>
Speichern Sie Folgendes als Install.asp und führen Sie es aus, wenn Sie die XML-Paketdatei installieren.
Kopieren Sie den Codecode wie folgt:
<%@LANGUAGE=VBSCRIPT CODEPAGE=65001%>
<%OptionExplicit%>
<%OnErrorResumeNext%>
<% Response.Charset=UTF-8%>
<% Server.ScriptTimeout=99999999%>
<!DOCTYPEhtmlPUBLIC-//W3C//DTDXHTML1.0Transitional//ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<htmlxmlns=http://www.w3.org/1999/xhtml>
<Kopf>
<metahttp-equiv=Content-Typecontent=text/html;
<title>Datei-Entpacker</title>
</head>
<Körper>
<%
StrLocalPath dimmen
'Ermitteln Sie den physischen Pfad des aktuellen Ordners
strLocalPath = Left(Request.ServerVariables(PATH_TRANSLATED), InStrRev(Request.ServerVariables(PATH_TRANSLATED),/))
Dimmen Sie objXmlFile
Dimmen Sie objNodeList
Dim objFSO
Dimmen Sie objStream
Dim i, j
Setze objXmlFile = Server.CreateObject(Microsoft.XMLDOM)
objXmlFile.load(Server.MapPath(update.xml))
Wenn objXmlFile.readyState =4Dann
Wenn objXmlFile.parseError.errorCode =0Dann
Setze objNodeList = objXmlFile.documentElement.selectNodes(//folder/path)
Setze objFSO = CreateObject(Scripting.FileSystemObject)
j = objNodeList.Length -1
Für i =0To j
Wenn objFSO.FolderExists(strLocalPath & objNodeList(i).text)=FalseThen
objFSO.CreateFolder(strLocalPath & objNodeList(i).text)
EndIf
Response.Write erstellt das Verzeichnis & objNodeList(i).text &<br/>
Response.Flush
Nächste
Setze objFSO =Nothing
Setze objNodeList =Nothing
Setze objNodeList = objXmlFile.documentElement.selectNodes(//file/path)
j = objNodeList.Length -1
Für i =0To j
Setze objStream = CreateObject(ADODB.Stream)
Mit objStream
.Typ=1
.Offen
.Schreiben Sie objNodeList(i).nextSibling.nodeTypedvalue
.SaveToFile strLocalPath & objNodeList(i).text,2
Response.Write gibt Datei & objNodeList(i).text &<br/> frei
Response.Flush
.Schließen
EndWith
Setze objStream =Nothing
Nächste
Setze objNodeList =Nothing
EndIf
EndIf
Setze objXmlFile =Nothing
Antwort. Entpacken der Schreibdatei abgeschlossen
%>
</body>
</html>