索引无法访问ASP FileSystemObject集合

时间:2009-05-11 16:13:47

标签: collections asp-classic filesystemobject

我生气了吗?我无法找到使用FileSystemObject(经典ASP)获取文件夹中第一个文件的方法。对于大多数集合,您认为索引0或1可能有效,但IIS说“无效的过程调用或参数”。

最后两行都不起作用:

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

我是非常愚蠢的,还是没有办法使用索引来访问这个特定的集合?

2 个答案:

答案 0 :(得分:3)

Files Collection不是Array,也不包含随机访问功能。如果你绝对需要这个功能,最接近模仿的就是遍历文件夹并创建一个包含所找到文件名称的新数组,使用这个新数组作为随机访问源,并从中创建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))

如果完全可以避免,我当然不会推荐这个。

答案 1 :(得分: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