ASP Filesystem Sammlung kann nicht durch einen Index zugegriffen werden
-
21-08-2019 - |
Frage
Bin ich verrückt zu werden? Ich kann nicht einen Weg finden, hält die ersten Datei in einem Ordner mit dem Filesystem (klassischen ASP) zu erhalten. Bei den meisten Sammlungen würden Sie denken, der Index 0 oder 1 funktionieren kann, aber IIS sagt: „ungültiger Prozedur-Aufruf oder Argument“.
Keine dieser letzten 2 Zeilen arbeiten:
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
Bin ich mega-dumm, oder gibt es keine Möglichkeit, einen Index zu verwenden, um diese besondere Sammlung zugreifen?
Lösung
Die Dateien Collection ist nicht ein Array, und enthält keine Schreib-Lese-Funktionalität. Wenn Sie unbedingt diese Funktionalität benötigen, zu imitieren, die nächste Sache wäre es, durch die Ordner wiederholen und ein neues Array mit den Namen der Dateien gefunden, verwenden Sie diese neue Array als Schreib-Lese-Quelle erstellen, und erstellen Sie Datei-Objekte aus dem Array-Werte.
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))
Ich würde das nicht empfehlen, wenn es überhaupt vermeidbar ist.
Andere Tipps
, aber man kann sie aufzählen und verfolgen den Index selbst:
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