<!--
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>