提高大家的“类”的思想,讨论一下,这个还能做什么?

iuhxq 2005-02-03 05:18:51
就是下面代码里的File和Tree的定义。
<title>http://asp2004.net</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
a {
font-size: 9pt;
color: #3300CC;
text-decoration: none;
}
body {
font-size: 9pt;
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
line-height: 20px;
background-color: #EEEEEE;
}
td {
font-size: 9pt;
line-height: 20px;
}
.tx {
border-color:#000000;
border-left-width: 0px;
border-top-width: 0px;
border-right-width: 0px;
border-bottom-width: 1px;
font-size: 9pt;
background-color: #EEEEEE;
}
.tx1 {
font-size: 9pt;
border: 1px solid;
border-color:#000000;
color: #000000;
}
-->
</style>
<%
Server.ScriptTimeout = 999

Set fso = CreateObject("Scripting.FileSystemObject")
Path = Request("foldername")
If Path = "" Then Path = server.MapPath("./")
ShowFolderList(Path)
Set fso = Nothing

'列出文件和文件夹

Function ShowFolderList(folderspec)
temp = Request.ServerVariables("HTTP_REFERER")
temp = Left(temp, Instrrev(temp, "/"))
temp1 = Len(folderspec) - Len(server.MapPath("./")) -1
If temp1>0 Then
temp1 = Right(folderspec, CInt(temp1)) + "\"
ElseIf temp1 = -1 Then
temp1 = ""
End If
tempurl = temp + Replace(temp1, "\", "/")
uppath = "./" + Replace(temp1, "\", "/")
upfolderspec = fso.GetParentFolderName(folderspec&"\")
Set f = fso.GetFolder(folderspec)
%>
<script language="javascript">
function File(Name, Size, Type, DateCreated, DateLastAccessed, DateLastModified, Attributes)
{
this.Name = Name;
this.Size = Size;
this.Type = Type;
this.DateCreated = DateCreated;
this.DateLastAccessed = DateLastAccessed;
this.DateLastModified = DateLastModified;
this.Attributes = Attributes;
}

function Tree(id, name)
{
this.id = id;
this.name = name;
this.root = new Array();
this.length = 0;

this.Add = function(file)
{
this.root.push(file);
this.length += 1;
}
this.max = function(f1, f2, field)
{
switch( field )
{
case "Name":
return f1.Name.toLowerCase()>f2.Name.toLowerCase()? true:false;
case "Size":
return f1.Size>f2.Size? true:false;
case "Type":
return f1.Type>f2.Type? true:false;
case "DateCreated":
return f1.DateCreated>f2.DateCreated? true:false;
case "DateLastAccessed":
return f1.DateLastAccessed>f2.DateLastAccessed? true:false;
case "DateLastModified":
return f1.DateLastModified>f2.DateLastModified? true:false;
case "Attributes":
return f1.Attributes>f2.Attributes? true:false;
default:
return false;
}
}
this.sort=function(field, order)
{
//order:desc asc
//field:Name Size
var len = this.root.length;
if( len < 2 ) return;
var tmp;
for(var i=0; i<len-1; i++)
{
for(var j=i+1; j<len; j++)
{
if( order == "desc")
{
if( !this.max( this.root[i], this.root[j], field ) )
{
tmp = this.root[i];
this.root[i] = this.root[j];
this.root[j] = tmp;
}
}
else if ( order == "asc")
{
if( this.max( this.root[i], this.root[j], field ) )
{
tmp = this.root[i];
this.root[i] = this.root[j];
this.root[j] = tmp;
}
}
}
}
}
}
function fieldcode(field)
{
if (order == 'desc')
{
order = 'asc';
}
else
{
order = 'desc';
}
tree.sort(field, order);
}
function show()
{
//for (var i=0;i<form1.elements.length;i++){var e = form1.elements[i];if (e.type == "checkbox")e.checked = form1.chkall.checked;}
str = '<table width="100%" border="0" cellspacing="0" cellpadding="0">\
<tr bgcolor="#EEEEEE">\
<td><div align="center">操作<input type="checkbox" name="chkall" onclick=""></div></td>\
<td><div align="center"><a onclick="fieldcode(\'Name\');show();" href=#>文件名</a></div></td>\
<td><div align="center"><a onclick="fieldcode(\'Size\');show();" href=#>大小</a></div></td>\
<td><div align="center"><a onclick="fieldcode(\'Type\');show();" href=#>类型</a></div></td>\
<td><div align="center"><a onclick="fieldcode(\'DateCreated\');show();" href=#>创建时间</a></div></td>\
<td><div align="center"><a onclick="fieldcode(\'DateLastAccessed\');show();" href=#>上次访问时间</a></div></td>\
<td><div align="center"><a onclick="fieldcode(\'DateLastModified\');show();" href=#>上次修改时间</a></div></td>\
<td><div align="center"><a onclick="fieldcode(\'Attributes\');show();" href=#>属性</a></div></td>\
</tr>';
var f;
for(i=0;i<tree.length;i++)
{
f = tree.root[i];
str += '<tr bgcolor="#EEEEEE" onmouseover=this.bgColor=\'#F3F6FA\'; onmouseout=this.bgColor=\'#EEEEEE\';>\
<td><center><input type="checkbox" name="f" value="'+tree.id+"\\\\"+f.Name+'"></center></td>\
<td><a href="'+f.url+'">'+f.Name+'</a></td>\
<td>'+f.Size+'</td>\
<td>'+f.Type+'</td>\
<td>'+f.DateCreated+'</td>\
<td>'+f.DateLastAccessed+'</td>\
<td>'+f.DateLastModified+'</td>\
<td>'+f.Attributes+'</td>\
</tr>';
}
str += '</table>';
eval(list).innerHTML = str;
}
var field = 'Name';
var order = 'desc';
var str;
</script>
<body onLoad="show()">
<span id="list"></span>
</body>
<%

Response.Write("<script language=javascript>"&vbcrlf)
Response.Write("var tree = new Tree('"&jscode(f.path)&"','"&jscode(f.name)&"');"&vbcrlf)
Set fc = f.SubFolders
For Each f1 in fc
Response.Write("tree.Add(new File('"&f1.name&"',"&f1.size&",'"&f1.Type&"','"&f1.DateCreated&"','"&f1.DateLastAccessed&"','"&f1.DateLastModified&"','"&f1.Attributes&"'));"&vbcrlf)
Next
set fc = f.Files
For Each f1 in Fc
Response.Write("tree.Add(new File('"&f1.name&"',"&f1.size&",'"&f1.Type&"','"&f1.DateCreated&"','"&f1.DateLastAccessed&"','"&f1.DateLastModified&"','"&f1.Attributes&"'));"&vbcrlf)
Next
Response.Write("</script>")
End Function

function jscode(s)
jscode = replace(s,"\","\\\\")
end function

%>

...全文
128 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yp267 2005-02-04
  • 打赏
  • 举报
回复
哇,这么长,顶一下吧!
iuhxq 2005-02-03
  • 打赏
  • 举报
回复
春节快乐。呵呵
hackate 2005-02-03
  • 打赏
  • 举报
回复
粉长,不过偶不懂啊,楼主散点分可以吧,HOHO!我真是到处要分象什么事了!HOHO!

帮你顶,春节快乐-_-!
  • 打赏
  • 举报
回复
类很好用asp里一样能使用get和let
scoutlin 2005-02-03
  • 打赏
  • 举报
回复
好长啊

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧