Compartir a través de


Uso de JScript o JavaScript para recorrer una colección

En este artículo se muestra cómo usar JScript o JavaScript para recorrer una colección.

Versión original del producto: Visual Studio
Número de KB original: 229693

Resumen

En este artículo se describe cómo usar scripts del lado servidor en páginas de Active Server Pages (ASP) con Script de Visual Basic (VBScript) y JScript o JavaScript para recorrer una colección. En VBScript, puede usar el FOR EACH...NEXT bucle para recorrer una colección. En JScript o JavaScript, debe usar un objeto enumerador.

Más información

En los ejemplos de este artículo se usa el objeto del sistema de archivos para recorrer una carpeta (en este caso, C:\Text) y enumerar todos los archivos ubicados en la carpeta. En el primer ejemplo se usa un FOR EACH...NEXT bucle en VBScript para recorrer:

  1. Cree una nueva carpeta en la carpeta raíz de la unidad C y asígnela el nombre Text.
  2. Coloque cinco archivos de texto en el directorio que creó.
  3. Cree una página ASP y agregue el siguiente código VBScript:
<% @LANGUAGE="VBScript" %>
<%
'Reference the FileSystemObject
set FSO = Server.CreateObject("Scripting.FileSystemObject")'Reference the Text directory
set Folder = FSO.GetFolder("C:\Text")'Reference the File collection of the Text directory
set FileCollection = Folder.Files

Response.Write("VBScript Method<BR>")'Display the number of files within the Text directory
Response.Write("Number of files found: " & FileCollection.Count & "<BR>")'Traverse through the FileCollection using the FOR EACH...NEXT loop
For Each FileName in FileCollection

strFileName = FileName.Name
Response.Write(strFileName & "<BR>")

Next

'De-reference all the objects
set FileCollection = Nothing
set Folder = Nothing
set FSO = Nothing

%>

En el ejemplo siguiente se muestra el equivalente pero se usa JScript o JavaScript y el objeto enumerador, como se muestra a continuación. Siga los pasos descritos anteriormente, excepto use el código siguiente en el paso 3.

<% @LANGUAGE="JScript" %>
<%
// Reference the FileSystemObject
var FSO = Server.CreateObject("Scripting.FileSystemObject");

// Reference the Text directory
var Folder = FSO.GetFolder("c:\\Text");

// Reference the File collection of the Text directory
 var FileCollection = Folder.Files;

Response.Write("JScript Method<BR>");

// Display the number of files within the Text directory
Response.Write("Number of files found: " + FileCollection.Count + "<BR>");

// Traverse through the FileCollection using the FOR loop
for(var objEnum = new Enumerator(FileCollection); !objEnum.atEnd(); objEnum.moveNext()) {
 strFileName = objEnum.item();
 Response.Write(strFileName + "<BR>");
}

// Destroy and de-reference enumerator object
delete objEnum;
objEnum = null;

// De-reference FileCollection and Folder object
FileCollection = null;
Folder = null;

// Destroy and de-reference FileSystemObject
delete FSO;
FSO = null;
%>

Nota:

El objeto enumerador se crea una instancia dentro del bucle FOR, que está bien en JScript o JavaScript. La sintaxis de la instrucción FOR es la siguiente:

FOR(initialize; test; increment) instrucción;

La salida de cada ejemplo de este artículo aparecerá de forma diferente. En VBScript, la salida muestra solo el nombre de archivo y su extensión de archivo, como se muestra aquí:

VBScript Method
Number of files found: 5
test1.txt
test2.txt
test3.txt
test4.txt
test5.txt

En JScript o JavaScript, la salida muestra la carpeta física, el nombre de archivo y su extensión de archivo:

JScript Method
Number of files found: 5
C:\Text\test1.txt
C:\Text\test2.txt
C:\Text\test3.txt
C:\Text\test4.txt
C:\Text\test5.txt

Los productos de otros fabricantes mencionados en este artículo son fabricados por compañías que no dependen de Microsoft. Microsoft no ofrece ninguna garantía, implícita o de otro tipo, respecto al rendimiento o la confiabilidad de estos productos.

Referencias

Para obtener más información sobre JScript y VBScript, vea Introducción a las tecnologías de script de Windows.