<%
path="h:\net\Shanda"
function ShowDir(path)
On Error Resume Next
Dim fso 'fso对象
Dim objFolder '文件夹对象
Dim objSubFolder '子文件夹对象
Dim objFile '文件对象
Dim nowpath '过程中要用到的变量,表示当前文件夹
'下面一段先判断文件夹是否存在,如不存在,给出提示信息,跳出循环
Set fso=Server.CreateObject("Scripting.FileSystemObject"
If Not fso.FolderExists(path) Then
Set fso=Nothing
Response.Write "这个文件夹根本就不存在"
Exit Function
End If
'创建文件夹对象
Set objFolder=fso.GetFolder(path)
'下面一段显示该文件夹下的所有子文件夹,注意其中会递归调用
'Response.Write "<ul>"
For Each objSubFolder In objFolder.Subfolders
'Response.Write "<li>" &path &objSubFolder.name &"< >"
s=s&path &"\"&objSubFolder.name &"<br>"
nowpath=path + "\" + objSubFolder.name '新的路径为当前文件夹的路径
Call ShowDir(nowpath) '这里递归调用
Next
'下面一段显示该文件夹下的所有子文件
For Each objFile In objFolder.Files
'Response.Write "<li>"& path &"\"&objFile.name &"< >"
s=s& path &"\"&objFile.name &"<br>"
Next
'Response.Write "</ul>"
'释放
response.write s
ShowDir=s
Set objFolder=Nothing
Set fso=Nothing
End function
response.Write ShowDir(path)
%>
代码如上。主要功能已经实现。现在的问题是。
如果在函数内部以response.write s形式输出的话,是可以显示在WEB上。功能可以实现。但是我现在需要以返回值的形式得到它的内容(原因是我需要保存成文本文件,而且这个函数我需要用FOR反复调用),然后再用FSO写入到文件中。可是用ShowDir=s却只能得到第一行。