L'outil d'empaquetage de code source XML asp de Liu Yongfa est emballé dans un fichier XML séparé. Vous pouvez l'installer directement sur le serveur et l'enregistrer sous Pack.asp.
Copiez le code comme suit :
<%@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>
<tête>
<metahttp-equiv=Content-Typecontent=text/html; charset=utf-8/>
<title>Programme de packaging de fichiers</title>
</tête>
<corps>
<%
Dim ZipPathDir, ZipPathFile
Heure de début et heure de fin tamisées
'Modifiez le chemin du dossier à empaqueter ici
ZipPathDir =F:/www.yongfa365.com'
ZipPathFile = mise à jour.xml
Si c'est vrai(ZipPathDir,1)<>/Then ZipPathDir = ZipPathDir&/
'Commencez à faire vos valises
CreateXml (ZipPathFile)
'Parcourir tous les fichiers et dossiers du répertoire
Sous LoadData (DirPath)
DimXmlDoc
Dim fso 'objet fso
Dim objFolder 'Objet dossier
Dim objSubFolders 'Collection de sous-dossiers
Dim objSubFolder 'Objet sous-dossier
Dim objFiles 'Collection de fichiers
Dim objFile 'Objet fichier
Dim objStream
Dim chemin d'accès, TextStream, pp, Xfolder, Xfpath, Xfile, Xpath, Xstream
DimPathNameStr
réponse.Write(==========&DirPath&==========<br>)
Définir fso = server.CreateObject (scripting.filesystemobject)
Set objFolder = fso.GetFolder(DirPath)'Créer un objet dossier
Réponse.Écrire DirPath
Réponse.flush
Définir XmlDoc = Server.CreateObject (Microsoft.XMLDOM)
XmlDoc.load Server.MapPath(ZipPathFile)
XmlDoc.async = Faux
'Écrivez le chemin de chaque dossier
Définir Xfolder = XmlDoc.SelectSingleNode(//root).AppendChild(XmlDoc.CreateElement(folder))
Définir Xfpath = Xfolder.AppendChild(XmlDoc.CreateElement(path))
Xfpath.text = Remplacer (DirPath, ZipPathDir,)
Définir objFiles = objFolder.Files
ForEach objFile dans objFiles
Si LCase(DirPath & objFile.Name)<> LCase(Request.ServerVariables(PATH_TRANSLATED))Alors
Réponse.Écrire ---<br/>
PathNameStr = DirPath && objFile.Name
Response.Write PathNameStr &
Réponse.flush
'=================================================
'Écrivez le chemin et le contenu du fichier
Définir Xfile = XmlDoc.SelectSingleNode(//root).AppendChild(XmlDoc.CreateElement(file))
Définir Xpath = Xfile.AppendChild(XmlDoc.CreateElement(path))
Xpath.text = Remplacer (PathNameStr, ZipPathDir,)
'Créer un flux de fichiers pour lire le contenu du fichier et l'écrire dans le fichier XML
Définir objStream = Server.CreateObject (ADODB.Stream)
objStream.Type=1
objStream.Open()
objStream.LoadFromFile(PathNameStr)
objStream.position =0
Définir Xstream = Xfile.AppendChild(XmlDoc.CreateElement(stream))
Xstream.SetAttribute xmlns:dt,urn:schemas-microsoft-com:types de données
'Le contenu du fichier est stocké en mode binaire
Xstream.dataType = bin.base64
Xstream.nodeTypedValue = objStream.Read()
Définir objStream = Rien
Définir XPath = Rien
Définir Xstream = Rien
Définir Xfile=Rien
'=================================================
FinSi
Suivant
Réponse.Écrire <p>
XmlDoc.Save (Serveur. Mappath (ZipPathFile))
Définir Xfpath = Rien
Définir Xfolder = Rien
Définir XmlDoc = Rien
'Objet de sous-dossier créé
Définir objSubFolders = objFolder.SubFolders
'Appeler récursivement parcourir les sous-dossiers
ForEach objSubFolder dans objSubFolders
chemin = DirPath & objSubFolder.Name &/
LoadData (chemin d'accès)
Suivant
Définir objFolder = Rien
Définir objSubFolders = Rien
Définir fso=Rien
FinSub
'Créer un fichier XML vide pour préparer l'écriture dans le fichier
Sous CreateXml (FilePath)
'Heure d'exécution du début du programme
heure de début = Minuterie()
Dim XmlDoc, racine
Définir XmlDoc = Server.CreateObject (Microsoft.XMLDOM)
XmlDoc.async = Faux
Définir Root = XmlDoc.createProcessingInstruction(xml,version='1.0' encoding='UTF-8')
XmlDoc.appendChild (racine)
XmlDoc.appendChild(XmlDoc.CreateElement(racine))
XmlDoc.Save(Serveur.MapPath(FilePath))
Définir la racine = Rien
Définir XmlDoc = Rien
LoadData (ZipPathDir)
'Heure de fin du programme
heure de fin = Minuterie()
réponse.Write(Durée d'exécution de la page : & FormatNumber((endtime - startime),3)& secondes)
FinSub
%>
</corps>
</html>
Enregistrez ce qui suit sous Install.asp et exécutez-le lors de l’installation du fichier de packaging XML.
Copiez le code comme suit :
<%@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>
<tête>
<metahttp-equiv=Content-Typecontent=text/html; charset=utf-8/>
<title>Décompresseur de fichiers</title>
</tête>
<corps>
<%
Dim strLocalPath
'Obtenir le chemin physique du dossier actuel
strLocalPath = Gauche (Request.ServerVariables (PATH_TRANSLATED), InStrRev (Request.ServerVariables (PATH_TRANSLATED),/))
Dim objXmlFichier
Dim objNodeList
Dim objFSO
Dim objStream
Dim je, j
Définir objXmlFile = Server.CreateObject (Microsoft.XMLDOM)
objXmlFile.load(Server.MapPath(update.xml))
Si objXmlFile.readyState = 4 Alors
Si objXmlFile.parseError.errorCode =0Alors
Définir objNodeList = objXmlFile.documentElement.selectNodes(//folder/path)
Définir objFSO = CreateObject (Scripting.FileSystemObject)
j = objNodeList.Length -1
Pour je =0À j
Si objFSO.FolderExists(strLocalPath & objNodeList(i).text)=FalseThen
objFSO.CreateFolder(strLocalPath & objNodeList(i).text)
FinSi
Response.Write crée le répertoire & objNodeList(i).text &<br/>
Réponse.Flush
Suivant
Définir objFSO = Rien
Définir objNodeList = Rien
Définir objNodeList = objXmlFile.documentElement.selectNodes(//file/path)
j = objNodeList.Length -1
Pour je =0À j
Définir objStream = CreateObject (ADODB.Stream)
Avec objStream
.Type=1
.Ouvrir
.Écrivez objNodeList(i).nextSibling.nodeTypedvalue
.SaveToFile strLocalPath & objNodeList(i).text,2
Response.Write publie le fichier & objNodeList(i).text &<br/>
Réponse.Flush
.Fermer
FinPar
Définir objStream = Rien
Suivant
Définir objNodeList = Rien
FinSi
FinSi
Définir objXmlFile = Rien
Le déballage du fichier réponse.Write est terminé
%>
</corps>
</html>