3

我要疯了吗?我找不到使用 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

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

4

2 回答 2

3

文件集合不是数组,也不包含随机访问功能。如果您绝对需要此功能,最接近模仿的方法是遍历文件夹并创建一个包含找到的文件名称的新数组,使用这个新数组作为随机访问源,并从数组值。

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 回答