3

私は怒っていますか?FileSystemObject(クラシックASP)を使用してフォルダー内の最初のファイルを取得する方法が見つかりません。ほとんどのコレクションでは、インデックス0または1が機能すると思いますが、IISは「無効なプロシージャの呼び出しまたは引数」と言っています。

これらの最後の2行はどちらも機能しません。

Set oFileScripting = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFileScripting.GetFolder(sFolder)
Set oFiles = oFolder.Files
If oFiles.Count = 0 Then Response.Write "no files"
Response.Write oFiles(0).Name
Response.Write oFiles.Item(1).Name

私は非常に愚かですか、それともこの特定のコレクションにアクセスするためにインデックスを使用する方法はありませんか?

4

2 に答える 2

3

ファイルコレクションは配列ではなく、ランダムアクセス機能は含まれていません。この機能がどうしても必要な場合、それを模倣する最も近い方法は、フォルダーを反復処理して、見つかったファイルの名前を含む新しい配列を作成し、この新しい配列をランダムアクセスソースとして使用し、からFileオブジェクトを作成することです。配列値。

ReDim FileArray(oFiles.Count)

i = 0
For Each oFile In oFiles
   FileArray(i) = oFile.Name
   i = i + 1
Next

Set oFile = oFileScripting.GetFile(sFolder + "\" + FileArray(0))

それがまったく避けられるのであれば、私は確かにこれをお勧めしません。

于 2009-05-13T16:33:01.350 に答える
0

いいえ。ただし、それらを列挙して、自分でインデックスを追跡することができます。

Set oFileScripting = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFileScripting.GetFolder(sFolder)
Set oFiles = oFolder.Files
If oFiles.Count = 0 Then Response.Write "no files"

i = 0
For Each oFile In oFiles
   Response.Write i & " = " & oFile.Name
   i = i + 1
Next
于 2009-05-11T16:54:02.130 に答える