⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pack.asp

📁 495K 源码语言:简体中文 授权方式:免费版 源码类别:ASP源码 / OA办公 运行环境:ASP环境/ 源码更新:2007-4-5 13:30:10 页面刷新:200
💻 ASP
字号:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<% Option Explicit %>
<% On Error Resume Next %>
<% Response.Charset="UTF-8" %>
<% Server.ScriptTimeout=99999999 %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>极界动漫网-文件压缩程序 for ASP</title>
</head>

<body>
<%


	Dim ZipPathDir,ZipPathFile,ZipFileExt
	Dim startime,endtime
	'在此更改要打包文件夹的路径,如果不更改,就是打包本目录下所有文件
	ZipPathDir = Left(Request.ServerVariables("PATH_TRANSLATED"),InStrRev(Request.ServerVariables("PATH_TRANSLATED"),"\"))'
	'生成的xml文件
	ZipPathFile = "pack.xml"
	'不进行打包的文件扩展名
	ZipFileExt = "db;bak"
	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
				for each objFile in objFiles
					if lcase(DirPath & objFile.name) <> lcase(Request.ServerVariables("PATH_TRANSLATED")) and lcase(DirPath & objFile.name) <> lcase(DirPath & ZipPathFile) then
						if ext(objFile.name) 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
						  '================================================
						end if
					end if
				next
		Response.Write "<p>"
		XmlDoc.Save(Server.Mappath(ZipPathFile))
		set Xfpath = nothing
		set Xfolder = nothing
		set XmlDoc = nothing
		
		'创建的子文件夹对象
		set objSubFolders=objFolder.Subfolders
			'调用递归遍历子文件夹
			for each objSubFolder in objSubFolders
				pathname = DirPath & objSubFolder.name & "\"
				LoadData(pathname)
			next
		set objFolder=nothing
		set objSubFolders=nothing
		set fso=nothing
		
	end sub
	
	
	
	'创建一个空的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) & "秒")
	end sub
	
	'判断文件类型是否合法
	function ext(filename)
		ext = true
		dim temp_ext,e
		temp_ext = Split(ZipFileExt,";")
		for e=0 to ubound(temp_ext)
			if mid(filename,InstrRev(filename,".")+1)=temp_ext(e) then ext=false
		next
	end function

%>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -