1. 其实我现在使用的就是一个比较完整的。代码见下:
2. 由于需要在两天之内写出来(the whole site),代码很不漂亮,也没有 err handle, optimize.
3. filesystemobject 只能用绝对路径。所以需要 mappath method.
4. microsoft suminfo object 只支持本地文件,不能 net use…
5. 但是他有 c++ 的源代码,你可以…
6. 很抱歉没办法把整个站点和大家共享,因为在intranet.
7. 为了对大家负责,我又看了一遍这段半年前的代码,好烂。 🙂
凑和用 8。 🙂
=================================
<%@ language=vbscript %>
<%
*********************************************************
this file is written by
kw copyright reserved. 🙂
if you have any question, directly contact w/ me.
some features are just under construction…
*********************************************************
%>
<html>
<head>
<meta name="generator" content="microsoft visual studio 6.0">
<link rel="stylesheet" type="text/css" href="/css/mycss.css">
</head>
<body>
<script language=javascript>
<!–
function mousemove()
{
var srcelement;
srcelement=window.event.srcelement;
{
srcelement.classname = "coolstyle";
}
}
function mouseout()
{
var srcelement;
srcelement=window.event.srcelement;
{
srcelement.classname = "normalstyle";
}
}
//–>
</script>
<script language=vbscript runat = server>
virtual root
fileservername = "fileserver"
vroot = "/file"
get the files collection from current folder
dim fs, f, f1, fc, s
set fs = createobject("scripting.filesystemobject")
begin of function – to get path info from external
get path parameter from external
spath = request("spath")
if (spath = "" or spath = ".") then
spath = "."
response.write "<table class = tablefilename border=0 width=100%>"
response.write "<tr align=center>"
shellostring = "hi, guy, i didnt get correct path info, so i can only show you current folder"
response.write "<td>" & shellostring & "</td></tr></table>"
end if
merge absolute path
sabpath = server.mappath (".") & "/" & spath
set f = fs.getfolder (sabpath)
end of function – to get path info from external
set fc = f.files
create suminfo object
dim suminfo
set suminfo = server.createobject("iissample.summaryinfo")
which kinds of document should be displayed?
bdocchecked = request.form ("doc")
bxdocchecked = request("xdoc")
bpptchecked = request.form ("ppt")
bxpptchecked = request("xppt")
bxlschecked = request.form ("xls")
bxxlschecked = request("xxls")
btxtchecked = request.form ("txt")
bxtxtchecked = request("xtxt")
bzipchecked = request.form ("zip")
bxzipchecked = request("xzip")
display all document in the folder is dangerous, so…
ballchecked = request.form ("all")
tell the visitor how to display document
response.write "<table class = tablefilename border=0 width=100%>"
response.write "<tr align=center><td>"
response.write "<font color=navy>"
response.write "current folder: <a href=file://" & fileservername & vroot & "/" & spath & " target=_blank>"
response.write "<span onmousemove=mousemove() onmouseout=mouseout()>"
response.write "//" & fileservername & vroot & "/" & spath & "</a>"
response.write "</span>"
response.write "</font>"
response.write "</td></tr>"
response.write "<tr align=center><td>"
response.write "<font color=green>please select the document type you want to list, and click refresh</font>"
response.write "</td></tr>"
response.write "<tr align=center><td>"
response.write "<form action=display.asp" & "?spath=" & spath & " id=choose_doc_type method=post name=form1>"
response.write "<input id=checkbox1 name=doc type=checkbox "
if ( bdocchecked = "on" or bxdocchecked = "on" ) then response.write "checked"
response.write ">word"
response.write "<input id=checkbox2 name=ppt type=checkbox "
if ( bpptchecked = "on" or bxpptchecked = "on" ) then response.write "checked"
response.write ">powerpoint"
response.write "<input id=checkbox3 name=xls type=checkbox "
if ( bxlschecked = "on" or bxxlschecked = "on" ) then response.write "checked"
response.write ">excel"
response.write "<input id=checkbox4 name=txt type=checkbox "
if ( btxtchecked = "on" or bxtxtchecked = "on" ) then response.write "checked"
response.write ">text"
response.write "<input id=checkbox5 name=zip type=checkbox "
if ( bzipchecked = "on" or bxzipchecked = "on" ) then response.write "checked"
response.write ">zip"
display all document in the folder is dangerous, so…
response.write "<input id=checkbox6 name=all type=checkbox "
if ballchecked = "on" then response.write "checked"
response.write ">all"
response.write "<input id=submit1 name=submit1 type=submit value=refresh>"
response.write "</form>"
response.write "</td></tr>"
response.write "</table>"
list files & properties, one by one
===================================
first above all, display table header
response.write "<table border=0 width=100%>"
for each f1 in fc
get file name
s = f1.name
get file type
filetype = right(s,3)
bdisplay = false
if filetype = "doc" and ( bdocchecked = "on" or bxdocchecked = "on" ) then bdisplay = true
if filetype = "ppt" and ( bpptchecked = "on" or bxpptchecked = "on" ) then bdisplay = true
if filetype = "xls" and ( bxlschecked = "on" or bxxlschecked = "on" ) then bdisplay = true
if filetype = "txt" and ( btxtchecked = "on" or bxtxtchecked = "on" ) then bdisplay = true
if filetype = "zip" and ( bzipchecked = "on" or bxzipchecked = "on" ) then bdisplay = true
display all document in the folder is dangerous, so…
if ballchecked = "on" then bdisplay = true
if bdisplay = true then
get this files properties
suminfo.setfile spath & "/" & s
first, display this files icon & name
response.write "<tr><td colspan=2 class=tablefilename>"
display icon according to file type
select case filetype
case "xls": response.write "<img src=" & vroot & "/images/xls.gif width=16 height=16 space=11>"
case "doc": response.write "<img src=" & vroot & "/images/doc.gif width=16 height=16 space=11>"
case "mdb": response.write "<img src=" & vroot & "/images/mdb.gif width=16 height=16 space=11>"
case "ppt": response.write "<img src=" & vroot & "/images/ppt.gif width=16 height=16 space=11>"
case "url": response.write "<img src=" & vroot & "/images/url.gif width=16 height=16 space=11>"
case "zip": response.write "<img src=" & vroot & "/images/txt.gif width=16 height=16 space=11>"
case else : response.write "<img src=" & vroot & "/images/txt.gif width=16 height=16 space=11>"
end select
response.write "<span onmousemove=mousemove() onmouseout=mouseout()>"
response.write "<a href=" & spath & "/" & s & "></span>" & s & "</a>"
its funny that only ppt has bytes property
if filetype = "ppt" then response.write " (file size: " & suminfo.bytes & ")"
begin of function – to see if the doc is new, for example, in near 5 days
theres once very important, to confirm that your system time looks like
"thursday, november 20, 1997, 5:02:45 pm"
otherwise youll get error
to avoid the error, please change long time format to
dddd, mm dd, yyyy
on sc nt server
get first ","
dim slst, ipos_fisrtcomm, ipos_secondcomm
now its like "thursday, november 20, 1997, 5:02:45 pm"
slst = suminfo.lastsavetime
ipos_fisrtcomm = instr (1, slst, ",")
make its like "november 20, 1997, 5:02:45 pm"
slst = right (slst ,(len(slst)-ipos_fisrtcomm -1) )
again, to get first "," & second ","
ipos_fisrtcomm = instr (1, slst, ",")
ipos_secondcomm = instr ((ipos_fisrtcomm +1), slst, ",")
make its like "november 20, 1997"
slst = left (slst, ipos_secondcomm – 1)
if ((date – datevalue (slst)) < 5) then response.write " <img src=" & vroot & "/images/new.gif>"
end of function – to see if the doc is new, for example, in near 5 days
response.write "</tr>"
then, display nessesary properties one by one
owner, ie, author
response.write "<tr class=tablefiledetail>"
response.write "<td align=right valign=top width=30%><b>owner</b></td>"
response.write "<td valign=top>"
response.write "<a href=mailto:" & suminfo.author & "><u>" & suminfo.author & "</u></td>"
subject
response.write "<tr class=tablefiledetail>"
response.write "<td align=right valign=top><b>subject</b></td>"
response.write "<td valign=top>" & suminfo.subject & "</td>"
title
response.write "<tr class=tablefiledetail>"
response.write "<td align=right valign=top><b>title</b></td>"
response.write "<td valign=top>" & suminfo.title & "</td>"
comments
response.write "<tr class=tablefiledetail>"
response.write "<td align=right valign=top><b>comment</b></td>"
response.write "<td valign=top>" & suminfo.comments & "</td>"
response.write "</td></tr>"
last saved day
response.write "<tr class=tablefiledetail>"
response.write "<td align=right valign=top><b>last saved day</b></td>"
response.write "<td valign=top>" & suminfo.lastsavetime & "</td>"
response.write "</td></tr>"
word doc page number (only for word doc)
if filetype = "doc" then
response.write "<tr class=tablefiledetail>"
response.write "<td align=right valign=top><b>word page number:</b></td>"
response.write "<td valign=top>" & suminfo.pagecount & "</td>"
response.write "</td></tr>"
end if
slides page number (only for ppt)
if filetype = "ppt" then
response.write "<tr class=tablefiledetail>"
response.write "<td align=right valign=top><b>slides page number:</b></td>"
response.write "<td valign=top>" & suminfo.slides & "</td>"
response.write "</td></tr>"
end if
end if
next
response.write "</table>"
release resource – kill the objects
set suminfo = nothing
set f1 = nothing
set fc = nothing
set f = nothing
set fs = nothing
</script>
</body>
</html>
=======================
