webForumDet fria alternativet

Hur fungerar fso, object, vb-script...!?

7 svar · 632 visningar · startad av Eclipse

EclipseMedlem sedan juli 20003 825 inlägg
#1

Jag har en kod som ska skapa nya sidor, men där man ska kolla om sidan finns. Det är inte alltid den finns, så man vill att länkarna ska går till rätt sida.

Om sidan finns, länken ska gå dit. I annat fall till en standardsida.

Detta är en teoretisk fråga. Kan jag öppna ett objekt EN gång och sen fråga med samma objekt eller ska jag öppna och stänga objektet varje gång?

Exempel:

' ## TOP OF PAGE 
Set fso = Server.CreateObject("Scripting.FileSystemObject")

' ## CODE.....

IF IsArra(xxxxxxxx) THEN

j = 0 TO UBOUND(xxxxxx, 2)

IF fso.fileExists( myPage(j) ) THEN ....(gör EN sak)  ELSE .... (gör en ANNAN sak)

LOOP
END IF

' ## CLOSE
set fso=nothing

Detta är ju väldigt förenklat nu, men kan man göra på detta sättet eller måste jag skapa och stänga objektet inne i loopen?

OveRRidEMedlem sedan feb. 200112 078 inlägg
#2

Du ska göra så som du skrivit ovan. FSO-objektet är generellt och har inget "state" så att säga, som du behöver populera om i loopen. Däremot om du skulle få för dig att göra ett File-, Folder-, Stream- eller nåt annat objekt som man med fördel loopar fram, så bör du givetvis populera det inne i loopen.

EclipseMedlem sedan juli 20003 825 inlägg
#3

Tack!

Ett mycket bra svar. jag förstår inte helt och hållet slutet, men det var å andra sidan inte heller det jag frågade efter.

OveRRidEMedlem sedan feb. 200112 078 inlägg
#4

Ett exempel på vad jag menar (förutsatt att din array "xxxxxx" innehåller en lista med mappar);

' ## TOP OF PAGE 
Set fso = Server.CreateObject("Scripting.FileSystemObject")

' ## CODE.....

IF IsArra(xxxxxxxx) THEN

j = 0 TO UBOUND(xxxxxx, 2)

set objFolder = FSO.GetFolder(xxxxxx(j))
   For each folder in objFolder.Subfolders
      Response.write "-" & folder.name & "<br>"
   Next
   For each file in objFolder.Files
      Response.write "---" & file.name & "<br>"
   Next
set objFolder = Nothing

LOOP
END IF

' ## CLOSE
set fso=nothing

Get it?

EclipseMedlem sedan juli 20003 825 inlägg
#5

Tack!

Känns om möjligt ännu mer användbart! :-)

Tyvärr kan man inte ge mer cred än max...!

En tråd värd att bokmärka.

EclipseMedlem sedan juli 20003 825 inlägg
#6

En följdfråga till FSO:

1. Om man skriver till ett namn som redan finns så skrivs den befintliga filen över?
Ja / Nej ?

Kan givetvis testa... men i loopen som jag gör skulle det vara bra att känna till innan....

@ndersMedlem sedan juni 200032 969 inlägg
#7

Eclipse skrev:

En följdfråga till FSO:

1. Om man skriver till ett namn som redan finns så skrivs den befintliga filen över?
Ja / Nej ?

Om man vill så...

TroxyMedlem sedan mars 20041 505 inlägg
#8

Hur skriver du till filen? Det finns lite olika metoder.
Det är enklast att läsa dokumentationen, så slipper man testa sig fram :)
http://msdn.microsoft.com/en-us/library/bkx696eh(VS.85).aspx

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)