webForumDet fria alternativet

Lista filer som länkar i ASP.NET?

.NET

8 svar · 544 visningar · startad av tstone

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

Hur kan jag lista filer (som filnamnet) för en specifik mapp med hjälp av asp.net (vb eller c#)?

:D Nicklas

Medlem sedan dec. 19998 577 inlägg
Medlem sedan apr. 2001101 inlägg
#3

jo....

Jag har med lite hjälp fått fram nedanstående kod för VB...


<%@ Page Language="VB" Debug="True" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<script language="VB" runat="server">
Sub Page_Load(Sender as Object, E as EventArgs)

dim storefile As directory
Dim directory As String
Dim files As String()
Dim File As String

files = storefile.GetFiles("C:\Nicklas\websites\admin", "*.*")

    For Each File In files
        response.write(File & "<BR>")
    Next
End Sub
</script>

Vilken genererar ett svar där varje fil listas med hela sökvägen...
...men eftersom det skall bli enkla länkar på en webbsida så vill jag ju bara ha den relativa sökvägen.

:D Jag KAN inte sånthäringa...

Medlem sedan mars 20002 836 inlägg
#4

kika in klassen FileInfo

<%@ Page Language="VB" Debug="True" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<script language="VB" runat="server">
Sub Page_Load(Sender as Object, E as EventArgs)

dim storefile As directory
Dim directory As String
Dim files As String()
Dim File As String

files = storefile.GetFiles(HttpContext.Current.Server.MapPath("/"), "*.*")

    For Each File In files
        Dim _fi As New FileInfo(File)
        response.write(_fi.Name & "<BR>")
    Next
End Sub
</script>

PS ... ändrade sökvägen .... DS

cya,
/PatrikB

Medlem sedan apr. 2001101 inlägg
#5

Ja - just så! :D Lysande!

Jag bockar och bugar djupt! / Nicke

Medlem sedan apr. 2001101 inlägg
#6

Nu har jag kommit en bit till....
men sedan blev det stopp - på grund av bristande kunskap....


<%@ Page Language="VB" Debug="True" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<script language="VB" runat="server">
Sub Page_Load(Sender as Object, E as EventArgs)
dim storefile As directory
Dim directory As String
Dim files As String()
Dim File As String

Dim Newdir(4)
'Newdir(0) = "C:\Nicklas\websites\Lane4_04_multiL\admin"
'Newdir(1) = "C:\Nicklas\websites\Lane4_04_multiL\images"
'Newdir(2) = "C:\Nicklas\websites\Lane4_04_multiL\swe"
'Newdir(3) = "C:\Nicklas\websites\Lane4_04_multiL\eng"
'Newdir(4) = "C:\Nicklas\websites\Lane4_04_multiL\library"
'For each x in Newdir
Newdir = "C:\Nicklas\websites\Lane4_04_multiL\admin"
files = storefile.GetFiles(Newdir,"*.*")
		For Each File In files
        	Dim _fi As New FileInfo(File)
        	response.write("<A href='"& _fi.Name & "' target='_blank'>" & _fi.Name & "</A>" & " | ")
    	Next
response.write(parent)
End Sub
</script>

På detta sätt får jag en massa fina länkar och allt är väl - om jag nu skulle vilja lista igenom ett antal olika mappar och presentera dem hur gör jag då? Jag har kikat åt For Each Next men fick det aldrig att sparka igång.

Någon som vet? Hjälp!

Medlem sedan sep. 20026 425 inlägg
#7

Jag har ej tid att koda just nu, men kolla in FileInfo Class @ MSDN och sök på Google. Lycka till! :D

Medlem sedan sep. 20026 425 inlägg
#8

Har du testat med GetDirectories i stället för Newdir?

<%@ Page Language="VB" Debug="True" %>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<script language="VB" runat="server">
Sub Page_Load(Sender as Object, E as EventArgs)
dim storefile As directory
Dim directory As String
Dim files As String()
Dim File As String

files = storefile.GetFiles([b]GetDirectories[/b],"*.*")
		For Each File In files
        	Dim _fi As New FileInfo(File)
        	response.write("<A href='"& _fi.Name & "' target='_blank'>" & _fi.Name & "</A>" & " | ")
    	Next
response.write(parent)
End Sub
</script>

Hoppas att det fungerar, och att jag inte yrar i morgonmössan. ;)

Medlem sedan mars 20002 836 inlägg
#9

här kommer lite kod för hur du väljer vilka foldrar som ska vara med i listningen:

<%@ Page Language="VB" Debug="True" %>
<%@ import Namespace="System" %>
<%@ import Namespace="System.IO" %>
<script runat="server">

    Sub Page_Load(Sender as Object, E as EventArgs)

    dim storefile As directory
    Dim directory As String
    Dim files As String()
    Dim File As String

    '## -- folders to list, relative to wwwroot --
    Dim _folders As String() = {"/","/admin/","/admin/bin/", "/classes/"}
    Dim _folder As String

        For Each _folder IN _folders
            files = storefile.GetFiles(HttpContext.Current.Server.MapPath(_folder), "*.*")

            For Each File In files
                Dim _fi As New FileInfo(File)
                response.write(_folder & _fi.Name & "<BR>")
            Next
        Next _folder

    End Sub

</script>
<html>
<head>
</head>
<body>
</body>
</html>

cya,
/PatrikB

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