Поделиться через


Использование JScript или JavaScript для обхода по коллекции

В этой статье показано, как использовать JScript или JavaScript для обхода коллекции.

Исходная версия продукта: Visual Studio
Исходный номер базы знаний: 229693

Итоги

В этой статье описывается, как использовать серверные скрипты на страницах Active Server Pages (ASP) с visual Basic Script (VBScript) и JScript или JavaScript для обхода по коллекции. В VBScript можно использовать FOR EACH...NEXT цикл для обхода по коллекции. В JScript или JavaScript необходимо использовать объект перечислителя.

Дополнительная информация

В примерах в этой статье используется объект файловой системы для обхода папки (в данном случае C:\Text) и перечисления всех файлов, расположенных в папке. В первом примере для обхода FOR EACH...NEXT используется цикл в VBScript:

  1. Создайте новую папку в корневой папке диска C и назовите ее Text.
  2. Поместите пять текстовых файлов в созданный каталог.
  3. Создайте страницу ASP и добавьте следующий код 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

%>

В следующем примере демонстрируется эквивалент, но используется JScript или JavaScript и объект перечислителя, как показано ниже. Выполните описанные ранее действия, за исключением использования следующего кода на шаге 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;
%>

Примечание.

Объект перечислителя создается в цикле FOR, который подходит для JScript или JavaScript. Синтаксис инструкции FOR выглядит следующим образом:

FOR(initialize; тест; оператор increment);

Выходные данные для каждого примера в этой статье будут отображаться по-разному. В VBScript выходные данные отображают только имя файла и его расширение файла, как показано ниже:

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

В JScript или JavaScript выходные данные отображают физическую папку, имя файла и его расширение файла:

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

Сторонние продукты, которые обсуждаются в этой статье, производятся компаниями, независимыми от Microsoft. Корпорация Майкрософт не дает никаких явных, подразумеваемых и прочих гарантий относительно производительности или надежности этих продуктов.

Ссылки

Дополнительные сведения о JScript и VBScript см. в статье "Общие сведения о технологиях сценариев Windows".