webForumDet fria alternativet

Lista mappar och undermappar/filer i meny m.h.a FSO

ASP

10 svar · 507 visningar · startad av pirajan

Medlem sedan apr. 2001246 inlägg
Frågan#1

Ngn som har något bra script som listar alla filer och mappar i en katalogiserad meny med länkar och allt?

Medlem sedan mars 20015 287 inlägg
#2

Detta kanske kan ta dig en bit på väg:
http://www.webforum.nu/showthread.php?s=&threadid=42570
Sitter själv o knåpar med något liknande.

Medlem sedan aug. 2001226 inlägg
Medlem sedan mars 20002 836 inlägg
#4

Ngt liknande kanske skulle passa:

<%
Option Explicit
Response.Buffer = True

Dim intIndent
intIndent = 0
%>
<HTML>
<HEAD>
<TITLE>pbExplorer v 1.00</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>

<BODY bgcolor="#FFFFFF" text="#000000">
<%
Call CreateTreeMenu(Server.MapPath("\"))
%>
</BODY>
</HTML>
<%
Sub CreateTreeMenu(ByVal sFolderPath)
	Dim objFSO
	Dim objFolder
	
	Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
		Set objFolder = objFSO.GetFolder(sFolderPath)
			'## -- list all folders --
			Call ListFolders(objFolder, intIndent)
		Set objFolder = Nothing
	Set objFSO = Nothing
End Sub

'## -- list all subfolders in folder --
Sub ListFolders(ByVal oFolder, ByVal iIndent)
	Dim SubFolder
	Dim strFolderName

	'## -- print out foldername --
	For Each SubFolder IN oFolder.SubFolders
		strFolderName = SubFolder.Name
		Call DoIndent(iIndent)
		Response.Write "[" & strFolderName & "]<BR>"
		Call ListFolders(SubFolder, iIndent + 1)
		Call ListFiles(oFolder, iIndent + 1)
	Next
End Sub

'## -- list all files in folder --
Sub ListFiles(ByVal oFolder, ByVal iIndent)
	Dim File
	Dim strFileName
	For Each File in oFolder.Files
		strFileName = File.Name
		Call DoIndent(iIndent)
		Response.Write strFileName & "<BR>"
	Next
End Sub

Sub DoIndent(ByVal iIndent)
	Dim N
	For N = 1 TO iIndent
		Response.Write "&nbsp;&nbsp;&nbsp;&nbsp;"
	Next
End Sub
%>

indenterar endast med mellanslag

[r]
raden Response.Write i DoIndent ska bytas ut mot:

Response.Write "& n b s p ; & n b s p ; & n b s p ; & n b s p; "

minus mellanslag så att det blir "hårda mellanslag" i HTML-koden

vart luddigt men hoppas att du fattar :e
[/r]

cya,
PatrikB

Medlem sedan dec. 20011 860 inlägg
#5

Hur ändrar man denna kod så att filerna listas så här?

patric.jpg
charlotte.jpg
bilder/fil.jpg
bilder/filer.jpg
bilder/bildbank/fil.jpg
bilder/igår/fil1.jpg
bilder/igår/fil2.jpg
Medlem sedan dec. 20025 871 inlägg
#6

Hade ett sådant script till min förra hemsida (I-N). Kan försöka "sära" på scriptet och hemsidan...

Medlem sedan apr. 2001246 inlägg
#7

Asa... Den där var lite låg.. :) kolla in http://forum.gruvsjo.com/forum.asp?id=5401

Medlem sedan mars 20015 287 inlägg
#8

Om du skickar med foldernamnet som argument i funktionerna och lägger in det i utskriftssträngen så borde det väl fungera. (I lite lagom luddig princip)
Nu kommer inte meitt exempel fungera rakt av, men det kanske ger något att spinna vidare på.
Typ:

<%
Option Explicit
Response.Buffer = True

Dim intIndent
intIndent = 0
%>
<HTML>
<HEAD>
<TITLE>pbExplorer v 1.00</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>

<BODY bgcolor="#FFFFFF" text="#000000">
<%
Call CreateTreeMenu(Server.MapPath("gb"))
%>
</BODY>
</HTML>
<%
	Dim foldern 
Sub CreateTreeMenu(ByVal sFolderPath)
	Dim objFSO
	Dim objFolder
	
	Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
		Set objFolder = objFSO.GetFolder(sFolderPath)
			'## -- list all folders --
			Call ListFolders(objFolder, intIndent,foldern )
		Set objFolder = Nothing
	Set objFSO = Nothing
End Sub

'## -- list all subfolders in folder --
Sub ListFolders(ByVal oFolder, ByVal iIndent,foldern )
	Dim SubFolder
	Dim strFolderName

	'## -- print out foldername --
	For Each SubFolder IN oFolder.SubFolders
		strFolderName = SubFolder.Name
		Call DoIndent(iIndent)
foldern = "\" & strFolderName & "\"
		Response.Write "[" & strFolderName & "]<BR>"
		Call ListFolders(SubFolder, iIndent + 1,foldern)

		Call ListFiles(oFolder, iIndent + 1,foldern)
	Next
End Sub

'## -- list all files in folder --
Sub ListFiles(ByVal oFolder, ByVal iIndent,foldern)
	Dim File
	Dim strFileName

	For Each File in oFolder.Files
		strFileName = File.Name
		Call DoIndent(iIndent)
		Response.Write foldern & strFileName & "<BR>"
	Next
End Sub

Sub DoIndent(ByVal iIndent)
	Dim N
	For N = 1 TO iIndent
		Response.Write "    "
	Next
End Sub
%>
Medlem sedan dec. 20011 860 inlägg
#9

Svar till pirajan:

Jag hjälper ju bara honom...

Medlem sedan dec. 20011 860 inlägg
#10

Det vore sjysst LeonL.

Medlem sedan apr. 2001246 inlägg
#11

Okej... Du har väl rätt Åsa...

451 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
304 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
306 ms — ändringar (db)