Alat pengemasan kode sumber asp xml Liu Yongfa dikemas ke dalam file xml terpisah. Anda dapat menginstalnya langsung di server dan menyimpannya sebagai Pack.asp.
Copy kode kodenya sebagai berikut:
<%@LANGUAGE=KODE VBSCRIPT=65001%>
<%OptionEksplisit%>
<%OnErrorResumeBerikutnya%>
<% Respon.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>
<kepala>
<metahttp-equiv=Jenis Kontenkonten=teks/html; charset=utf-8/>
<title>Program Pengemasan File</title>
</kepala>
<tubuh>
<%
Redupkan ZipPathDir, ZipPathFile
Redupkan waktu mulai, waktu berakhir
'Ubah jalur folder yang akan dikemas di sini
ZipPathDir =F:/www.yongfa365.com'
ZipPathFile =perbarui.xml
Jika Benar(ZipPathDir,1)<>/Maka ZipPathDir = ZipPathDir&/
'Mulai berkemas
BuatXml(ZipPathFile)
'Melintasi semua file dan folder di direktori
Sub LoadData (DirPath)
DimXmlDok
Redupkan objek fso 'fso
Redupkan objFolder 'Objek folder
Redupkan koleksi Subfolder objSubFolders
Redupkan objSubFolder 'Objek subfolder
Redupkan koleksi file objFiles '
Redupkan objFile 'Objek file
Redupkan objStream
Redupkan nama jalur, TextStream, pp, Xfolder, Xfpath, Xfile, Xpath, Xstream
DimPathNameStr
respon.Tulis(==========&DirPath&==========<br>)
Setel fso = server.CreateObject(scripting.filesystemobject)
Setel objFolder = fso.GetFolder(DirPath)'Buat objek folder
Respon.Tulis DirPath
Respon.flush
Setel XmlDoc = Server.CreateObject(Microsoft.XMLDOM)
XmlDoc.memuat Server.MapPath(ZipPathFile)
XmlDoc.async =Salah
'Tulis setiap jalur folder
Setel Xfolder = XmlDoc.SelectSingleNode(//root).AppendChild(XmlDoc.CreateElement(folder))
Setel Xfpath = Xfolder.AppendChild(XmlDoc.CreateElement(jalur))
Xfpath.text = Ganti(DirPath, ZipPathDir,)
Setel objFiles = objFolder.Files
UntukSetiap objFile di objFiles
Jika LCase(DirPath & objFile.Name)<> LCase(Request.ServerVariables(PATH_TRANSLATED))Lalu
Respon.Tulis ---<br/>
PathNameStr = DirPath && objFile.Nama
Respon.Tulis PathNameStr &
Respon.flush
' ====
'Tulis jalur dan isi file dari file tersebut
Setel Xfile = XmlDoc.SelectSingleNode(//root).AppendChild(XmlDoc.CreateElement(file))
Setel Xpath = Xfile.AppendChild(XmlDoc.CreateElement(jalur))
Xpath.teks = Ganti(PathNameStr, ZipPathDir,)
'Buat aliran file untuk membaca konten file dan menulisnya ke file XML
Setel objStream = Server.CreateObject(ADODB.Stream)
objStream.Jenis=1
objStream.Buka()
objStream.LoadFromFile(PathNameStr)
objStream.posisi =0
Setel Xstream = Xfile.AppendChild(XmlDoc.CreateElement(stream))
Xstream.SetAttribute xmlns:dt,urn:schemas-microsoft-com:datatypes
'Isi file disimpan dalam mode biner
Xstream.dataType =bin.base64
Xstream.nodeTypedValue = objStream.Baca()
Setel objStream = Tidak Ada
Setel Xpath = Tidak Ada
Setel Xstream = Tidak Ada
Setel Xfile=Tidak Ada
' ====
AkhirJika
Berikutnya
Respon.Tulis <p>
XmlDoc.Simpan(Server.Mappath(ZipPathFile))
Setel Xfpath = Tidak Ada
Setel Xfolder = Tidak Ada
Setel XmlDoc = Tidak Ada
'Membuat objek subfolder
Setel objSubFolder = objFolder.SubFolder
'Panggil melintasi subfolder secara rekursif
UntukSetiap objSubFolder di objSubFolders
nama jalur = DirPath & objSubFolder.Nama &/
LoadData (nama jalur)
Berikutnya
Setel objFolder = Tidak Ada
Setel objSubFolders = Tidak Ada
Tetapkan fso=Tidak ada
Sub Akhir
'Buat file XML kosong untuk mempersiapkan penulisan ke file
Sub BuatXml(Jalur File)
'Waktu eksekusi mulai program
waktu mulai = Timer()
Redupkan XmlDoc, Root
Setel XmlDoc = Server.CreateObject(Microsoft.XMLDOM)
XmlDoc.async =Salah
Setel Root = XmlDoc.createProcessingInstruction(xml,version='1.0' coding='UTF-8')
XmlDoc.appendChild(Root)
XmlDoc.appendChild(XmlDoc.CreateElement(root))
XmlDoc.Simpan(Server.MapPath(FilePath))
Setel Root = Tidak Ada
Setel XmlDoc = Tidak Ada
LoadData(ZipPathDir)
'Waktu berakhirnya program
waktu berakhir = Timer()
respon.Write(Waktu eksekusi halaman: & FormatNumber((waktu selesai - waktu mulai),3)& detik)
Sub Akhir
%>
</tubuh>
</html>
Simpan yang berikut ini sebagai Install.asp dan jalankan saat menginstal file pengemasan XML.
Copy kode kodenya sebagai berikut:
<%@LANGUAGE=KODE VBSCRIPT=65001%>
<%OptionEksplisit%>
<%OnErrorResumeBerikutnya%>
<% Respon.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>
<kepala>
<metahttp-equiv=Jenis Kontenkonten=teks/html; charset=utf-8/>
<title>Pembongkar File</title>
</kepala>
<tubuh>
<%
Redupkan strLocalPath
'Dapatkan jalur fisik folder saat ini
strLocalPath = Kiri(Permintaan.ServerVariables(PATH_TRANSLATED), InStrRev(Permintaan.ServerVariables(PATH_TRANSLATED),/))
Redupkan file objXml
Redupkan objNodeList
Redupkan objekFSO
Redupkan objStream
Redupkan aku, j
Setel objXmlFile = Server.CreateObject(Microsoft.XMLDOM)
objXmlFile.load(Server.MapPath(update.xml))
Jika objXmlFile.readyState =4Lalu
Jika objXmlFile.parseError.errorCode =0Lalu
Setel objNodeList = objXmlFile.documentElement.selectNodes(//folder/path)
Setel objFSO = CreateObject(Scripting.FileSystemObject)
j = objNodeList.Panjang -1
Untuk saya =0Ke j
Jika objFSO.FolderExists(strLocalPath & objNodeList(i).text)=FalseThen
objFSO.CreateFolder(strLocalPath & objNodeList(i).teks)
AkhirJika
Response.Write membuat direktori & objNodeList(i).teks &<br/>
Respon. Siram
Berikutnya
Setel objFSO = Tidak Ada
Setel objNodeList = Tidak Ada
Setel objNodeList = objXmlFile.documentElement.selectNodes(//file/path)
j = objNodeList.Panjang -1
Untuk saya =0Ke j
Setel objStream = CreateObject(ADODB.Stream)
Dengan objStream
.Jenis=1
.Membuka
.Tulis objNodeList(i).nextSibling.nodeTypedvalue
.SaveToFile strLocalPath & objNodeList(i).teks,2
Response.Write merilis file & objNodeList(i).text &<br/>
Respon. Siram
.Menutup
BerakhirDengan
Setel objStream = Tidak Ada
Berikutnya
Setel objNodeList = Tidak Ada
AkhirJika
AkhirJika
Setel objXmlFile = Tidak Ada
respon. Tulis pembongkaran file selesai
%>
</tubuh>
</html>