webForumDet fria alternativet

Plocka ut ett namn från FSO

ASP

6 svar · 247 visningar · startad av Calevan

Medlem sedan maj 20031 173 inlägg
Frågan#1

har sett en hel del sådana här kodsnuttar nu, när jag letat på FSO.

Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder(rootname & Dirfolder)
set Files = Folder.Files

For each Item In Files
   response.write "<img src=imgs/"& fileType(Item.Name)& " width=20 height=17><a href="&strFolder&dirfolder&"\"&Item.Name&">"&Item.Name&"</A><br>"
Next

och alla gör för varje item i files. Men om man vill ha ut ett specielt item ur files då? säg att man bara vill ha namnet på item 10? hur skriver man då? inte Item.Name(10) i alla fall.. någon som kan berätta?

tackar!

Medlem sedan dec. 20003 887 inlägg
#2
Files.Item(10).Name

Kan det fungera?

Medlem sedan maj 20031 173 inlägg
#3
Invalid procedure call or argument

får jag när jag kör

<% Response.Write filer.item(10).name %>

har inte raden

set Files = Folder.Files

utan

Set filer = folder.Files

men det borde ju inte spela någon roll. slarvade lite när jag läste min egna kod innan jag postade mitt första inlägg här.

något annat förslag? jag testar runt lite men olika kombinationer, men eftersom jag inte riktigt fattar hur FSO fungerar så går det ingen bra :(

Medlem sedan dec. 20003 887 inlägg
#4

Nu har jag ingen möjlighet att testa FileSystemObject, men när jag kollar syntaxen för Item tyckte jag att det skulle vara så enkelt.

Set fsoThis = Server.CreateObject("Scripting.FileSystemObject")
Set fsoFolder = fsoThis.GetFolder(rootname & Dirfolder)
Set fsoFiles = fsoFolder.Files

Respone.Write fsoFiles(10).Name

Det kanske kan fungera bättre?

Medlem sedan aug. 20013 824 inlägg
#5

RED: om nu Engine^'s lösning funkar så kan du skita i det här inlägget ;)

Hmm, om du vet ungefär hur många filer som finns i mappen kan du väll göra så här:

Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder(rootname & Dirfolder)
set Files = Folder.Files

Dim intItemName(666)  '666 = antalet filer i mappen
Dim i : i = 0
For each Item In Files
     intItemName(i) = Item.Name
     response.write "<img src=imgs/"& fileType(Item.Name)& " width=20 height=17><a href="&strFolder&dirfolder&"\"&Item.Name&">"&Item.Name&"</A><br>"
     i = (i+1)
Next

Response.write intItemName(9)

Går det lösa utan att man vet filantalet?

Medlem sedan maj 20031 173 inlägg
#6

Fick inte Engine's modell att fungera, vet inte varför, men jag försökte läsa lite på webguru, och det verkar inte som om det går, utan man får göra på något sätt så som du föreslåt miku.

Jag kommer aldrig ha mer än 200 filer, så jag gjorde arrayen så stor... antar att det tar massa extra kraft, men jag har ingen bättre idé, kanske kan man definiera om den så att den klipper efter den sista platsen som fylls... någon som har någon idé till detta?

annars verkar det funka så här långt, tror bara att jag måste slänga in globala variabler nu... och det kanske inte är optimalt... men men.

Medlem sedan mars 20015 287 inlägg
#7
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder(rootname & Dirfolder)
set Files = Folder.Files

reDim intItemName(Files.Count)
Dim i : i = 0
For each Item In Files
     intItemName(i) = Item.Name
     response.write "<img src=imgs/"& fileType(Item.Name)& " width=20 height=17><a href="&strFolder&dirfolder&"\"&Item.Name&">"&Item.Name&"</A><br>"
     i = (i+1)
Next
Response.write intItemName(9)
263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)