如何在 ASP Classic (javascript) 中循环或访问对象集合?

How to loop or access Object Collection in ASP Classic (javascript)?

所以我在我的工作场所找到了这个旧的 Web 应用程序(asp 经典)并被要求修改它。我想做的是,我想显示这个特定文件夹中的所有文件。我没有使用 link 对每个文件名进行硬编码,而是尝试如下:

<%
    var fs = new ActiveXObject("Scripting.FileSystemObject");
    var fo = new ActiveXObject("Scripting.FileSystemObject");
    var f = new ActiveXObject("Scripting.FileSystemObject");
    var theFile = new ActiveXObject("Scripting.FileSystemObject");

    fo=fs.GetFolder("C:\inetpub\wwwroot\edocument\MyFiles");
    f = fo.Files;

    For Each theFile in f
        Response.write(theFile.Name+"<br>");
    Next
%>

似乎 For Each 循环不会 work/not 在 asp javascript 中被识别,但发现了一些使用 vbscript 的工作示例。我也试过直接访问集合:

 Response.write(f[0].Name);

但是它说 ...is null or not an object

知道如何访问此文件集吗?

在 javascript 中,您需要一个 Enumerator() to walk the collection,然后使用 for nextwhile,如下例所示

<% @LANGUAGE="JScript" %>
<%
var fso = Server.CreateObject("Scripting.FileSystemObject");
var fo = fso.GetFolder("C:\inetpub\wwwroot\edocument\MyFiles");

var f = new Enumerator(fo.Files);
f.moveFirst()
while (!f.atEnd()) {
   Response.Write(f.item().name + "<BR>");
   f.moveNext();
}

fo = null;
f = null;
fso = null;
%>