Domanda

Sto diventando pazzo? non riesco a trovare una via per entrare in possesso del primo file in una cartella con il FileSystemObject (ASP classico). Con la maggior parte raccolte si potrebbe pensare che l'indice 0 oppure 1 potrebbe funzionare, ma IIS dice "non valido chiamata di procedura o argomento".

Nessuno di questi ultimi 2 linee di lavoro:

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

mi viene mega-stupido, o c'è alcun modo per utilizzare un indice per accedere a questa raccolta particolare?

È stato utile?

Soluzione

La collezione file non è un array, e non contiene la funzionalità ad accesso casuale. Se avete assolutamente bisogno di questa funzionalità, la cosa più vicina ad imitare sarebbe per scorrere la cartella e creare un nuovo array contenente i nomi dei file trovati, utilizzare questo nuovo array come origine ad accesso casuale, e creare oggetti File dalla valori di matrice.

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))

Certamente non consiglio questo se è affatto evitabile.

Altri suggerimenti

No, ma li si può enumerare e rintracciare l'indice da soli:

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top