ASP 的文件操作

<!--
	Author: wintersun
	data: 2014/11/21
-->
<html>
<style>
.mydiv
{
	position:relative;
	left:400px;
	top:-200px;
}
.read
{
	position:relative;
	top=-40px;
}
</style>

<!--文件夹浏览板块-->
<div>本文件夹路径:
<%	if request.querystring("folder")<>"" then '目录有无指定的情况。
		folder=request.querystring("folder")  '存储文件夹路径
		fl=request.querystring("file")        '存储文件路径
		response.write request.querystring("folder")
	else
		folder=server.mappath("./")
		response.write server.mappath("./")
	end if
%></div>

<%
function drive_type(x)'文件类型选择器
	select case x
		case 0 
			drive_type="未知磁盘"
		case 1
			drive_type="可移动磁盘"
		case 2
			drive_type="固定的驱动器"
		case 3
			drive_type="网络驱动器"
		case 4
			drive_type="只读的CD驱动器"
		case 5
			drive_type="内存式磁盘驱动器"
	end select
	end function
%>

<%
	'浏览文件

set fs=server.createobject("scripting.filesystemobject")
if request.querystring("folder")<>"root" then
	if request.querystring("folder")<>"" then '若指定访问目录则访问指定目录,否则访问文件所在目录
			if fs.folderexists(request.querystring("folder"))=true then '考虑文件夹是否存在的情况
				set fo=fs.getfolder(request.querystring("folder"))
			else
				response.write("貌似没有这个文件夹。。")
				response.write("<br><a href=""2.asp"">点击返回</a>")
				response.end
			end if
	else
		set fo=fs.getfolder(server.mappath("./"))
	end if
	if fo.isrootfolder then '如果为根目录
		response.write("<a href=""2.asp?folder=root"">上一级<a><br>")
	else
		response.write("<a href=""2.asp?folder="&fo.parentfolder.path&""">上一级<a><br>")
	end if
	
	for each item in fo.subfolders '读出文件夹
		response.write("<div class=""folder"">"&item.name&"<button οnclick=""jump('2.asp?folder="&replace(item.path,"\","\\")&"')"">进入文件夹</button><br></div>")
	next
	for each item in fo.files      '读出文件
	'必须将\元字符转义。
	response.write("<div class=""file"">"&item.name&"<button οnclick=""jump('2.asp?folder="&replace(folder,"\","\\")&"&file="&replace(item.path,"\","\\")&"')"">读取文件</button>")
	response.write("<button οnclick=""choose('"&replace(item.path,"\","\\")&"')"">选择</button><br></div>") '若选择,则写入cookie,放入交换区等待交换。
	next
else
	for each dr in fs.drives '读出盘符
			response.write("<a href=""2.asp?folder="&dr&"\"">"&dr&"</a>  "&drive_type(fs.getdrive(dr).drivetype)&"<br>")
	next
end if
%>
<script>
function jump(url)//页面跳转。
{
//	url=encodeURI(url) 多余了。。
	window.location.href=url;
//	alert(url)
}

function getcookie(cookies,id)//获取cookie值,提供对比的需要
{
	var s=cookies.split(";")
	for(var i=0;i<s.length;i++)
		{
			var a=s[i].split("=")
			if(a[0]==id)return a[1];
		}
	return "";
}

function choose(path)//javascript实现添加cookie值,VB好像不能删COOKIE。。
{
 //if(document.cookie.indexof("one"))  javascript大小写敏感
	if(document.cookie.indexOf("one=")==-1)//若不存在,返回值为-1
		{
			document.cookie="one="+path;
			window.location.href=window.location.href;//刷新。
			return ;
		}
	if(path!=getcookie(document.cookie,"one"))// 去重复
		if(document.cookie.indexOf("two=")==-1)
			{
				document.cookie="two="+path;
				window.location.href=window.location.href;
				return ;
			}
		else 
			alert("已选择两个了!")
	else 
		alert("重复的选择!")
}
</script>

<!--文件交换板块-->

<%
	'先删除再浏览,实时效果。
	'if not request.cookie("one")="" then  在vbscript中是cookies
	response.write("<div class=""mydiv""><p id=""p"">已选择:<br>")
	if not request.cookies("one")="" then 
		'response.write("document.getElementById(""p"").innerhtml+="&response.cookies("one")&"")  时间先后的问题
		one="<button οnclick=""jump('2.asp?folder="&replace(folder,"\","\\")&"&file="&replace(fl,"\","\\")&"&del=one');"">删除</button>"  '各种转义,先VB后JS。
		response.write("文件一:"&request.cookies("one")&one&"<br>")  '格式问题。。。
	end if
	if not request.cookies("two")="" then
		two="<button οnclick=""jump('2.asp?folder="&replace(folder,"\","\\")&"&file="&replace(fl,"\","\\")&"&del=two');"">删除</button>"
		response.write("文件二:"&request.cookies("two")&two&"<br>")
	end if
	if not request.cookies("one")="" and not request.cookies("two")="" then
		response.write("<button οnclick=""jump('2.asp?folder="&replace(folder,"\","\\")&"&file="&replace(fl,"\","\\")&"&swap=true');"">开始交换</button><br>")
	end if
	response.write("<br></p></div>")
%>
<!--写了那么多非重点,那么核心代码来了。。
	执行文件交换-->
<%
	if not request.cookies("one")="" and not request.cookies("two")="" and request.querystring("swap")="true" then'确认交换。
		if not fs.getextensionname(request.cookies("one"))=fs.getextensionname(request.cookies("two")) then
			response.write("<script>var isreal=confirm(""正在将两个类型不同的文件内容互换,确定吗?"");")
			response.write("if(isreal)jump('2.asp?folder="&replace(folder,"\","\\")&"&file="&replace(fl,"\","\\")&"&swap=realtrue');")
			response.write("</script>")
		else
			response.write("<script>")
			response.write("jump('2.asp?folder="&replace(folder,"\","\\")&"&file="&replace(fl,"\","\\")&"&swap=realtrue');")'
			response.write("</script>")
		end if
	end if 
	
%>
<%
	dim str1,str2 '用来临时保存文件内容
	if not request.cookies("one")="" and not request.cookies("two")="" and request.querystring("swap")="realtrue"  then
		set fs=createobject("scripting.filesystemobject")
		set ts1=fs.opentextfile(request.cookies("one"),1,true)
		set ts2=fs.opentextfile(request.cookies("two"),1,true)
		do while not ts1.atendofstream'读取文件1
			str1=str1+ts1.readline()
		loop
		do while not ts2.atendofstream'读取文件2
			str2=str2+ts2.readline()
		loop
		'覆盖写入文件
		set ts1=fs.opentextfile(request.cookies("one"),2,true)
		set ts2=fs.opentextfile(request.cookies("two"),2,true)
		ts1.write(str2)
		ts2.write(str1)
	end if
%>

	<script>

	function setCookie(c, value, expire)
	{
	var exdate=new Date();
	exdate.setDate(exdate.getDate() + expire);
	document.cookie=c+ "=" + value + ((expire==null) ? "" : ";expires="+exdate.toGMTString());
	jump('2.asp?folder=<%=replace(folder,"\","\\")%>&file=<%=replace(fl,"\","\\")%>')
}
</script>

<%	'删除选择(其实就是删除cookie。。)
	if request.querystring("del")<>""then
		response.write("<script>setCookie("""&request.querystring("del")&""","""",-1);</script>")
	end if
	'删除完毕
%>

<!--文件内容浏览板块-->
<%
	'读取文件内容模块
	if not request.querystring("file")="" then  '找文件
		if fs.fileexists(request.querystring("file"))=true then '考虑有无这个文件的情况。
			file=request.querystring("file")
			set ts=fs.opentextfile(file,1,true,0)
			response.write("<div class=""read"">"&fl)
			response.write("<pre>")
			x=1
			do while not ts.atendofstream
				response.write(x&".	 "&html(ts.readline())&"<br>")'好像输出需要过滤html标记,再写个过滤函数。
				x=x+1
			loop
			response.write("</pre></div>")
			ts.close()
			
		else
			response.write("文件未找到!")
		end if
	end if
%>

<%
	'用作过滤HTML标记
	Function html(str)
		str=replace(str,"<","<")
		str=replace(str,">",">")
		html=str
	end function
%>



</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值