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": //if (field == "???t?D") return false; 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()"> <form name="form1" method=post action=""> <span id="list"></span> </form> </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