webForumDet fria alternativet

Lista filer även i undermappar.....

ASP

12 svar · 670 visningar · startad av phazer23

Medlem sedan feb. 2001256 inlägg
Frågan#1

Använder just nu denna kod för att visa mappar och filer..

<HTML>
<HEAD>
<TITLE>FileSystemObject</TITLE>
</HEAD>
<BODY>
<%
Dim objFSO, objFolder, objSubFolders
Dim strFolderPath

strFolderPath = Server.MapPath("\")

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
	Set objFolder = objFSO.GetFolder(strFolderPath)
		Set objSubFolders = objFolder.SubFolders
			For Each Folder IN objSubFolders
				strFolderName = Folder.Name
				
				Response.Write "<A href=listafiler.asp?mapp="& strFolderName & ">"& strFolderName &"</A><BR>"
			Next
		Set objSubFolders = Nothing
	Set objFolders = Nothing
Set objFSO = Nothing

%>
<%
dim strPathInfo, strPhysicalPath
strPathInfo = Request.ServerVariables("PATH_INFO")
strPhysicalPath = Server.MapPath(strPathInfo)

Dim objFile, objFileItem, objFolderContents
Set objFSO = CreateObject("Scripting.FileSystemObject")
set objFile = objFSO.GetFile(strPhysicalPath)
set objFolder = objFile.ParentFolder
set objFolderContents = objFolder.Files 

%>
<TABLE cellpadding=5>
<TR align=center>
</TR> 
<%
For Each objFileItem in objFolderContents

%>
<TR><TD align=left>
<A HREF="text.asp?fil=<%= objFileItem.Name %>"><FONT FACE="Verdana" SIZE="1">
<%= objFileItem.Name %></A></FONT></TD>
</TR>
<%
Next
%>
</TABLE>

</BODY>
</HTML>

Nu är det så att jag skulle vilja kunna klicka på en mapp och sedan kunna se alla filer i den mappen...

Medlem sedan feb. 200112 078 inlägg
#2

Jag hade en bit kod för detta ändamål för ett tag sedan, men jag kan faktiskt inte hitta de just nu och orkar tyvärr inte skriva om det.. :l

Mitt script fungerade så att varje gång man klickade på en länk (som går till samma sida), skickade jag med querystring med den sökvägen och plockade ner den. Där listade jag sedan eventuella mappar och filer och sen börjar det ju om kan man säga. Eftersom man inte kan slå ihop .subFolders och .Files till en collection får man ju göra två exekveringar (mappar först och sedan filerna, som i windows) och det fungerade utmärkt för mig.

Rörigt. :l ;)

Medlem sedan feb. 200112 078 inlägg
#3

Jag hittade koden, men jag var tvungen att ändra bort lite applikations-relaterade bitar, så det kan finnas en liten bugg nånstans.

[REDIGERING.] Som sagt, jag hittade en bugg. ;)

<%
if request.querystring("dir") = "" then
	strPath = "/dinsokvag"
else
	strPath = strPath & request.querystring("dir")
end if

'On Error Resume Next
dim objFSO,objFolder,objFile, strPath

set objFSO = Server.CreateObject("Scripting.FileSystemObject")
set objFolder = objFSO.GetFolder(server.mappath(strPath))

function getFileSize(int)
	getFileSize = round(int/1024,0)
end function
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
	<title>- Filer -</title>
<link rel="stylesheet" href="/css/style.css" type="text/css">
</head>

<body bgcolor="#ffffff">

<table border="0">
<tr>
	<td><font class="mtop2">Innehåll i <%=strPath%></font></td>
</tr>
<tr>
	<td>
	
	<table width="100%" border="0" cellpadding="0" cellspacing="0">
	<tr>
		<td><img src="/gfx/kat_1_top.gif"></td>
		<td><b><font class="text">Katalognamn</b></font></td>
		<td><b><font class="text">Storlek</b></font></td>
		<td><b><font class="text">Skapad</b></font></td>
		<td><b><font class="text">Senast läst</b></font></td>
	</tr>
	<tr>
		<td height="5" colspan="5"></td>
	</tr>
	<tr>
		<td width="15">&laquo;</td>
		<td colspan="4"><font class="stext"><a href="<%=request.servervariables("SCRIPT_NAME")%>?dir=<%=objFSO.GetParentFolderName(strPath)%>">Bakåt i strukturen</a></font></td>
	</tr>
	<tr>
		<td height="5" colspan="5"></td>
	</tr>
	<% for each objFile in objFolder.SubFolders	%>
	<tr>
		<td><img src="/gfx/kat_1_fol.gif"></td>
		<td><font class="text"><a href="<%=request.servervariables("SCRIPT_NAME")%>?dir=<%=strPath%>/<%=objFile.Name%>"><%=objFile.Name%></a></font></td>
		<td><font class="text"><%=getFileSize(objFile.Size)%> kB</font></td>
		<td><font class="text"><%=Left(objFile.DateCreated,10)%></font></td>
		<td><font class="text"><%=Left(objFile.DateLastAccessed,10)%></font></td>
	</tr>
	<% next %>
	<% for each objFile in objFolder.Files	%>
	<tr>
		<td><img src="/gfx/kat_1.gif"></td>
		<td><font class="text"><a href="<%=strPath%>/<%=objFile.Name%>"><%=objFile.Name%></a></font></td>
		<td><font class="text"><%=getFileSize(objFile.Size)%> kB</font></td>
		<td><font class="text"><%=Left(objFile.DateCreated,10)%></font></td>
		<td><font class="text"><%=Left(objFile.DateLastAccessed,10)%></font></td>
	</tr>
	<% next %>
	<tr>
		<td colspan="5"><img src="/gfx/kat_1_bot.gif"></td>
	</tr>
	</table>
	
	</td>
</tr>
<tr>
	<td height="10"></td>
</tr>
<tr>
	<td><font class="text"></font></td>
</tr>
<tr>
	<td colspan="4" height="3"></td>
</tr>
</table>

</body>
</html>

<%
set objFolder = nothing
set objFSO = nothing
%>
Medlem sedan feb. 2001256 inlägg
#4

Hur får jag den att funka från rooten ??? Skriver jag in bara / så blir det ju fel..

Medlem sedan feb. 200112 078 inlägg
#5
strPath = "/"

skall fungera.

Felmeddelande?

Medlem sedan feb. 2001256 inlägg
#6

Det blir fel när jag försöker klicka på något.. Mappar blir det detta felet..

Server.MapPath() error 'ASP 0174 : 80004005'

Invalid Path Character(s)

/funkanu.asp, line 14

An invalid '/' or '\' was found in the Path parameter for the MapPath method.

eftersom querystringen blir dir=//forum tex..
och filer går inte att klicka på alls eftersom det inte blir någon "path" framför filnamnet... :(

Medlem sedan feb. 200112 078 inlägg
#7

Stand by for processing..

Medlem sedan feb. 2001256 inlägg
#8

Löste det själv bytte ut
<td><font class="text"><a href="<%=request.servervariables("SCRIPT_NAME")%>?dir=<%=strPath%>/<%=objFile.Name%>"><%=objFile.Name%></a></font></td>

mot

<td><font class="text"><a href="<%=request.servervariables("SCRIPT_NAME")%>?dir=<%=strPath%><%=objFile.Name%>"><%=objFile.Name%></a></font></td>

När jag presenterade mapparna och la in min egna http sökväg före fillänken...

Tack för hjälpen .... Nu kan man sova gött i kväll kanske.. (om Sverige bara spöar Finland ;) )

Medlem sedan feb. 200112 078 inlägg
#9

Ok. :)

Funkar det att navigera in i flera undermappar än en nu då?

Medlem sedan feb. 2001256 inlägg
#10

Nope.. :( Trodde jag hade löst det....... Men icke sa nicke..... Funkar bara in i en undermapp...
Ligger det ytterliggare en under så skiter det sig....

Medlem sedan feb. 200112 078 inlägg
#11

Som sagt, jag jobbar på det. Lugn. :)

Medlem sedan feb. 2001256 inlägg
#12

Tjena OveRRidE.. Fick till en lösning.. Vet inte hur smart den e men den funkar.....

Jag la till detta överst..

if NOT request.querystring("dir") = "" then
text = request.querystring("dir")
text = Replace(text,"//","/")
end if

och istället för

strPath = strPath & request.querystring("dir")

blev det

strPath = strPath & text

Medlem sedan feb. 200112 078 inlägg
#13

Bra.

Jag hade inte tid innan helgen. Sorry. :)

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)