Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как использовать 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:
- Создайте новую папку в корневой папке диска C и назовите ее Text.
- Поместите пять текстовых файлов в созданный каталог.
- Создайте страницу 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".