Just nu i M3-nätverket
Gå till innehåll

random folder


eddie66

Rekommendera Poster

hej

 

jag har letat efter ett script som hämtar mapp namn slumpvis, under en specifik mapp. sedan ska scriptet hämta 3 filer från denna slumpvalda mappen, slumpvis också.

 

det enda jag hittade var nedan kod som hämtar en slump fil under en specifik mapp.

 

anledningen är att jag vill visa 3 bilder på min hemsida, olika bilder varje gång någon besöker sidan. jag har olika mappar med olika bilder och därför måste denna sida slumpa fram först en mapp och sedan slumpa fram 3 filer under den slumpvalda mappen.

 

är det någon som känner till någon bra kod eller kan hjälpa mig med denna kod?

 

markera med fet stil så kanske ni förstår bättre.

 

mvh

eddie

 

<% 
   Set fso = CreateObject("Scripting.FileSystemObject") 
   Set fold = fso.GetFolder(Server.MapPath("../img/[b]här ska den hämta en slumpvald mapp[/b]/images/[b]här ska den hämta 3 slump bilder[/b]")) 
   Set fileset = fold.files 
   fileCount = fileset.count 


   if fileCount > 0 then 

       counter = 1 
       randomize 
       fileToPick = clng((rnd * fileCount) + 0.5) 

       for each file in fileset 
           if counter < fileToPick then 
               counter = counter + 1 
           else 
               randomFile = file.name 
               exit for 
           end if 
       next 

       response.write randomFile 

   else 

       response.write "Empty folder." 

   end if 

   set fileset = nothing 
   set fold = nothing 
   set fso = nothing 
%>

 

Länk till kommentar
Dela på andra webbplatser

Läs in alla mappar i en array, sedan slumpar du ett nummer mellan 0 till högsta index i arrayen.

 

För slumpa bilder i en mapp kan sdu göra på samma sätt som ovan bara du gör en ny array där du istället lägger i bilderna.

 

 

Länk till kommentar
Dela på andra webbplatser

har du möjligtviss något exempel som jag kan ta del av? är nämligen inte så bra på array tyvärr.

 

har dock lyckats hämta ut alla mappar med nedan kod, så jag får ut alla mapp namn.

 

har letat på nätet men det finns inte så många bra svar på det jag söker.

 

tacksam för all hjälp!

 

<% 
Whichfolder=server.mappath("..\img\") &"/" 
Dim fs, f, f1, fc 
Set fs = CreateObject("Scripting.FileSystemObject") 
Set f = fs.GetFolder(Whichfolder) 
Set fc = f.subfolders 

For Each f1 in fc
%>                 
<%=f1.name%> <br>                
<%					
Next
Set f = Nothing
Set fs = Nothing
Set fc = Nothing
%> 

 

Länk till kommentar
Dela på andra webbplatser

Nej det är möjligt att det inte finns ett helt klart exempel, därför skrev jag hur man kan gå tillväga utan att ge exempel.

 

Set mainfolder = fs.GetFolder(Whichfolder) 
Set foldercollection = f.subfolders 
Dim folderArray(f.Subfolders.Count -1) 'Göra en array
dim i : i=0
For Each folder in foldercollection
folderArray(i)=folder.name
i=i+1
Next

'Nu innehåller folderArray alla dina mappar och du kan slumpa en mapp med RND
Randomize
slumpad_mapp = folderArray(Int(((f.Subfolders.Count -1)+1)*Rnd))
Response.write slumpad_mapp

 

Tillämpa sedan samma metod för filerna i mappen du slumpat ut.

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...