次の方法で共有


JScript または JavaScript を使用してコレクションを走査する

この記事では、JScript または JavaScript を使用してコレクションを走査する方法について説明します。

元の製品バージョン: Visual Studio
元の KB 番号: 229693

概要

この記事では、Visual Basic Script (VBScript) と JScript または JavaScript を使用して Active Server Pages (ASP) ページ上のサーバー側スクリプトを使用してコレクションを走査する方法について説明します。 VBScript では、 ループを FOR EACH...NEXT 使用してコレクションを走査できます。 JScript または JavaScript では、列挙子オブジェクトを使用する必要があります。

詳細

この記事の例では、ファイル システム オブジェクトを使用してフォルダー (この場合は) を走査し、 C:\Textフォルダー内にあるすべてのファイルを一覧表示します。 最初の例では、VBScript のループを FOR EACH...NEXT 使用して走査します。

  1. ドライブ C のルート フォルダーに新しいフォルダーを作成し、Text という名前を 付けます
  2. 作成したディレクトリに 5 つのテキスト ファイルを配置します。
  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; テストインクリメント) ステートメント

この記事の各例の出力は、異なる方法で表示されます。 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

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示または黙示にかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。

関連情報

JScript と VBScript の詳細については、「 Windows スクリプト テクノロジの概要」を参照してください。