webForumDet fria alternativet

FSO - Skriva ett filträd

ASP

6 svar · 406 visningar · startad av Troxy

Medlem sedan mars 20041 505 inlägg
Frågan#1

Hej, jag sitter här med FSO och vill göra följande:

Utgå från en speciell folder. Sedan skriva ut alla subfolders i foldern, och sedan varje subfolders subfolder osv. Ett komplett filträd alltså, som endast visar mappar!

Antagligen måste man anropa funktioner i andra funktioner och liknande. Det blev så snurrigt när jag satt och försökte, kan ingen försöka förklara hur man ska göra?

Medlem sedan maj 20012 080 inlägg
#2

För att loopa ut alla kataloger i en katalog kan du göra så här:

	varFolderPath = "/fotoalbum/" 
	filepath = server.mappath(varFolderPath) 
	'response.write "Vald path = <b> " &varFolderPath &"</b>"
	'response.write "<hr>Komplett filpath = <b>" &filepath &"</b>"
	Set fso = Server.CreateObject("Scripting.FilesystemObject")
	Set folder = fso.GetFolder(filepath)  
	Set folderCollection = folder.SubFolders %> 
	<table>
	<% ' LOOPAR UT KATALOGNAMNEN'
	For Each subfol in folderCollection %>
		<tr><td>
		<font face=verdana size=2>
			<img align="absmiddle" src="ico_map_closed_16.gif"> <b><%=subfol.Name%></b> 
		</font>
		</td><td>
		<font face=verdana size=1>
			 <%=subfol.Size\1024%> Kb 
		</font>
		</td></tr>
	<% varFolderCount = varFolderCount +1 %>
	<% Next %>
	</table>

Du får manipulera ovan för att kunna gå in i nästa katalog :)

Medlem sedan maj 20012 080 inlägg
#3

Tex:

<a href="minsida.asp?vald_katalog=<%=subfol.Name%>">
<img align="absmiddle" src="ico_map_closed_16.gif"> <b><%=subfol.Name%></b>
</a>

Så lägger du till...

<% 'INPUT
sValdKatalog = Request.querystring("vald_katalog")
%>

Och ändrar

varFolderPath = "/fotoalbum/" &sValdKatalog &"/"

Så kan du klicka dig ner i nästa katalog :)

Medlem sedan mars 20041 505 inlägg
#4

Okej, så man skriver ut mappnamnen med en for-loop. Nu kommer jag till problemet hur man skriver ut mapparna i mapparna man listar. Det ska ju gå hela vägen in i alla mappar tills det inte finns några.

Medlem sedan apr. 200487 inlägg
#5

Troxy: Modifiera mattias kod lite så att det blir en funktion istället och sätter vilken mapp det är som en parameter till funktionen och kan på så sätt anropa funktionen inne i for-loopen för att få ut alla mapparna.

Medlem sedan mars 20041 505 inlägg
#6

Tack! Nu fick jag det att fungera! En fråga bara: Om en mapp är tom, ska det stå "Tomt". Hur kollar jag med en If-sats om antal subfolders är 0?

EDIT: Man körde visst objSubFolders.Count för att få antal mappar. :bire

Tack för hjälpen nu!

Medlem sedan maj 20012 080 inlägg
#7

:)

Glöm inte att acceptera som slutgiltigt svar om du är nöjd med svaret

:)

676 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
546 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
546 ms — ändringar (db)