Инструмент упаковки исходного кода xml asp Лю Юнфа упакован в отдельный файл xml. Его можно установить непосредственно на сервер и сохранить как Pack.asp. Запустите его при упаковке файла.
Скопируйте код кода следующим образом:
<%@LANGUAGE=КОДОВАЯ СТРАНИЦА VBSCRIPT=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>
<голова>
<metahttp-equiv=Content-Typecontent=text/html;charset=utf-8/>;
<title>Программа упаковки файлов</title>
</голова>
<тело>
<%
Тусклый ZipPathDir, ZipPathFile
Тусклое время начала, время окончания
'Измените путь к папке, которую нужно упаковать сюда
ZipPathDir =F:/www.yongfa365.com'
ZipPathFile =update.xml
Если Right(ZipPathDir,1)<>/Then ZipPathDir = ZipPathDir&/
«Начни собирать вещи
CreateXml(ZipPathFile)
'Обход всех файлов и папок в каталоге
Дополнительные данные загрузки (DirPath)
Димксмлдок
Dim fso 'объект fso
Dim objFolder 'Объект папки
Dim objSubFolders 'Коллекция подпапок
Dim objSubFolder 'Объект подпапки
Dim objFiles 'Коллекция файлов
Dim objFile 'Файловый объект
Тусклый объектный поток
Тусклое имя пути, TextStream, pp, Xfolder, Xfpath, Xfile, Xpath, Xstream
DimPathNameStr
response.Write(==========&DirPath&==========<br>)
Установите fso = server.CreateObject(scripting.filesystemobject)
Set objFolder = fso.GetFolder(DirPath)'Создание объекта папки
Response.Write DirPath
Ответ.flush
Установите XmlDoc = Server.CreateObject(Microsoft.XMLDOM)
XmlDoc.load Server.MapPath(ZipPathFile)
XmlDoc.async = Ложь
'Записываем путь к каждой папке
Установить Xfolder = XmlDoc.SelectSingleNode(//root).AppendChild(XmlDoc.CreateElement(папка))
Установите Xfpath = Xfolder.AppendChild(XmlDoc.CreateElement(путь))
Xfpath.text = Заменить(DirPath, ZipPathDir,)
Установите objFiles = objFolder.Files
ForEach objFile в objFiles
Если LCase(DirPath & objFile.Name)<> LCase(Request.ServerVariables(PATH_TRANSLATED))Тогда
Ответ.Запись ---<br/>
PathNameStr = DirPath && objFile.Name
Response.Write PathNameStr &
Ответ.flush
'=============================================
'Записываем путь и содержимое файла
Set Xfile = XmlDoc.SelectSingleNode(//root).AppendChild(XmlDoc.CreateElement(file))
Установить Xpath = Xfile.AppendChild(XmlDoc.CreateElement(путь))
Xpath.text = Заменить(PathNameStr, ZipPathDir,)
'Создаем файловый поток для чтения содержимого файла и записи его в файл XML
Установите objStream = Server.CreateObject(ADODB.Stream)
objStream.Type=1
objStream.Открыть()
objStream.LoadFromFile(PathNameStr)
objStream.position = 0
Установите Xstream = Xfile.AppendChild(XmlDoc.CreateElement(поток))
Xstream.SetAttribute xmlns:dt,urn:schemas-microsoft-com:datatypes
'Содержимое файла хранится в двоичном режиме
Xstream.dataType =bin.base64
Xstream.nodeTypedValue = objStream.Read()
Установить objStream = Ничего
Установить Xpath = Ничего
Установить Xstream = Ничего
Установить Xfile=Ничего
'=============================================
КонецЕсли
Следующий
Ответ.Запись <p>
XmlDoc.Save(Server.Mappath(ZipPathFile))
Установить Xfpath = Ничего
Установить Xfolder = Ничего
Установить XmlDoc = Ничего
'Создан объект подпапки
Установите objSubFolders = objFolder.SubFolders
'Вызов рекурсивного обхода подпапок
ForEach objSubFolder в objSubFolders
имя пути = Путь к каталогу & objSubFolder.Name &/
LoadData (путь)
Следующий
Установить objFolder = Ничего
Установить objSubFolders = Ничего
Установить fso=Ничего
EndSub
'Создаем пустой XML-файл для подготовки к записи в файл
Подпрограмма CreateXml(FilePath)
'Время начала выполнения программы
время начала = Таймер()
Тусклый XmlDoc, корень
Установите XmlDoc = Server.CreateObject(Microsoft.XMLDOM)
XmlDoc.async = Ложь
Set Root = XmlDoc.createProcessingInstruction(xml,version='1.0'coding='UTF-8')
XmlDoc.appendChild(корневой)
XmlDoc.appendChild(XmlDoc.CreateElement(корень))
XmlDoc.Save(Server.MapPath(FilePath))
Установить корень = ничего
Установить XmlDoc = Ничего
ЗагрузитьДанные(ZipPathDir)
'Время окончания программы
время окончания = Таймер()
response.Write(Время выполнения страницы: & FormatNumber((время окончания - время начала),3)& секунды)
EndSub
%>
</тело>
</html>
Сохраните следующий файл как Install.asp и запустите его при установке файла упаковки XML.
Скопируйте код кода следующим образом:
<%@LANGUAGE=КОДОВАЯ СТРАНИЦА VBSCRIPT=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>
<голова>
<metahttp-equiv=Content-Typecontent=text/html;charset=utf-8/>;
<title>Распаковщик файлов</title>
</голова>
<тело>
<%
Тусклый стрлокалпас
'Получаем физический путь к текущей папке
strLocalPath = Left(Request.ServerVariables(PATH_TRANSLATED), InStrRev(Request.ServerVariables(PATH_TRANSLATED),/))
Тусклый объект objXmlFile
Тусклый список объектов objNodeList
Тусклый объект objFSO
Тусклый объектный поток
Дим я, дж
Установите objXmlFile = Server.CreateObject(Microsoft.XMLDOM)
objXmlFile.load(Server.MapPath(update.xml))
Если objXmlFile.readyState = 4, то
Если objXmlFile.parseError.errorCode = 0, то
Установите objNodeList = objXmlFile.documentElement.selectNodes(//папка/путь)
Установите objFSO = CreateObject(Scripting.FileSystemObject)
j = objNodeList.Length -1
Для i = 0To j
Если objFSO.FolderExists(strLocalPath & objNodeList(i).text)=FalseThen
objFSO.CreateFolder(strLocalPath & objNodeList(i).text)
КонецЕсли
Response.Write создает каталог & objNodeList(i).text &<br/>
Ответ.Flush
Следующий
Установить objFSO = Ничего
Установить objNodeList = Ничего
Установите objNodeList = objXmlFile.documentElement.selectNodes(//файл/путь)
j = objNodeList.Length -1
Для i = 0To j
Установите objStream = CreateObject(ADODB.Stream)
С объектным потоком
.Тип=1
.Открыть
.Напишите objNodeList(i).nextSibling.nodeTypedvalue.
.SaveToFile strLocalPath и objNodeList(i).text,2
Response.Write выпускает файл & objNodeList(i).text &<br/>
Ответ.Flush
.Закрывать
КонецС
Установить objStream = Ничего
Следующий
Установить objNodeList = Ничего
КонецЕсли
КонецЕсли
Установить objXmlFile = Ничего
ответ.Запись файла распаковка завершена
%>
</тело>
</html>