infostabil > edb.internet.* > edb.internet.webdesign.serverside.asp

johnny pedersen (30.03.2006, 14:21)
Hej

Hvordan kan man lave en funktion er lister aller filer i alle
mapper op i den mappe man står i og alle under mapper til den ?

mvh

Johnny
Neuhafen (30.03.2006, 14:59)
"johnny pedersen" <donner_63> skrev i en meddelelse
news:6298
> Hej
> Hvordan kan man lave en funktion er lister aller filer i alle
> mapper op i den mappe man står i og alle under mapper til den ?


Johnny,

Mener du som dir/s i DOS ?

I så flad kan denne måske bruges:

<%
'Først finder vi denne fil...
Dim DenneFil, DetteDir
DenneFil = Request.ServerVariables("Script_Name")

' Så finder vi stien til denne fil...
DetteDir = Server.MapPath(DenneFil)

' Vi skal nu oprette et objekter

Dim ObjFSO, ObjFile, ObjFileItem, ObjFolder, ObjFolderContents,
ObjSubFolders
Set ObjFSO = CreateObject("Scripting.FileSystemObject")

Set ObjFile = ObjFSO.GetFile(DetteDir)
Set ObjFolder = ObjFile.ParentFolder
Set ObjFolderContents = ObjFolder.Files

RodKatalog = ObjFolder

' Alle Objekter er oprettet

Sub VisSti(objFolder)

Response.Write "<br><strong>" & objFolder & "</strong><br><br>"
Set Filer = objFolder.Files
For each Fil in Filer
Sti = Replace(objFolder, RodKatalog, "")
%>
<a href="<%Response.Write Sti & "\" & Fil.name%>">Vis</a>
<%
Response.Write objFolder & "\" & Fil.name & "<br>"
Next
Falg = False
For each SubFolder in objFolder.SubFolders
Set AntalSubFolders = SubFolder.SubFolders
Antallet = AntalSubFolders.Count
If Antallet>0 then
Flag = True
Set SubSubFolders = SubFolder
VisSti(SubSubFolders)
End if

If Flag = False then
Response.Write "<br><strong>" & SubFolder & "</strong><br><br>"
Set Filer=SubFolder.Files
For each Fil in Filer
Sti = Replace(SubFolder, RodKatalog, "")
%>
<a href="<%Response.Write Sti & "\" & Fil.name%>">Vis</a>
<%
Response.Write SubFolder & "\" & Fil.name & "<br>"
Next
End If

Next

End Sub

Response.Write "Viser alle filer i dette bibliotek og alle under biblioteker
!!!<br><br>"
VisSti (objFolder)

%>

Mange Hilsner
Jan F. Niebuhr
[..]
johnny pedersen (30.03.2006, 15:26)
Hej Jan,

Tak for det,

hvordan kan det ændres til kun at vise foldere og filer i den folder man står i
og subfoldere til den ?

mvh

Johnny

Neuhafen wrote in dk.edb.internet.webdesign.serverside.asp:
> "johnny pedersen" <donner_63> skrev i en meddelelse
> news:6298
> Johnny,
> Mener du som dir/s i DOS ?
>> I så flad kan denne måske bruges:

> <%

&gt; 'Først finder vi denne fil...
&gt; Dim DenneFil, DetteDir
&gt; DenneFil = Request.ServerVariables("Script_Name")
&gt;
&gt; ' Så finder vi stien til denne fil...
&gt; DetteDir = Server.MapPath(DenneFil)
&gt;
&gt; ' Vi skal nu oprette et objekter
&gt;
&gt; Dim ObjFSO, ObjFile, ObjFileItem, ObjFolder, ObjFolderContents,
&gt; ObjSubFolders
&gt; Set ObjFSO = CreateObject("Scripting.FileSystemObject")
&gt;
&gt; Set ObjFile = ObjFSO.GetFile(DetteDir)
&gt; Set ObjFolder = ObjFile.ParentFolder
&gt; Set ObjFolderContents = ObjFolder.Files
&gt;
&gt; RodKatalog = ObjFolder
&gt;
&gt; ' Alle Objekter er oprettet
&gt;
&gt; Sub VisSti(objFolder)
&gt;
&gt; Response.Write "<br><strong>" & objFolder & "</strong><br><br>"
&gt; Set Filer = objFolder.Files
&gt; For each Fil in Filer
&gt; Sti = Replace(objFolder, RodKatalog, "")
&gt; %>
> <a href="<%Response.Write Sti & "\" & Fil.name%>">Vis</a>
> <%

&gt; Response.Write objFolder & "\" & Fil.name & "<br>"
&gt; Next
&gt; Falg = False
&gt; For each SubFolder in objFolder.SubFolders
&gt; Set AntalSubFolders = SubFolder.SubFolders
&gt; Antallet = AntalSubFolders.Count
&gt; If Antallet>0 then
&gt; Flag = True
&gt; Set SubSubFolders = SubFolder
&gt; VisSti(SubSubFolders)
&gt; End if
&gt;
&gt; If Flag = False then
&gt; Response.Write "<br><strong>" & SubFolder & "</strong><br><br>"
&gt; Set Filer=SubFolder.Files
&gt; For each Fil in Filer
&gt; Sti = Replace(SubFolder, RodKatalog, "")
&gt; %>
> <a href="<%Response.Write Sti & "\" & Fil.name%>">Vis</a>
> <%

&gt; Response.Write SubFolder & "\" & Fil.name & "<br>"
&gt; Next
&gt; End If
&gt;
&gt; Next
&gt;
&gt; End Sub
&gt;
&gt; Response.Write "Viser alle filer i dette bibliotek og alle under
biblioteker
&gt; !!!<br><br>"
&gt; VisSti (objFolder)
&gt;
&gt; %>
[..]
terje (30.03.2006, 18:04)
johnny pedersen wrote:
> Hej Jan,
> Tak for det,
> hvordan kan det ændres til kun at vise foldere og filer i den folder man står i
> og subfoldere til den ?


Kanskje du kan bruke dette? Bytt ut C:\MinFolder\ med din egen folder.
terje

Dim m_oFSO
Dim m_oRootFolder

Set m_oFSO = CreateObject("Scripting.FileSystemObject")
Set m_oRootFolder = m_oFSO.GetFolder("C:\MinFolder\")

IterateFolders m_oRootFolder

Set m_oRootFolder = Nothing: Set m_oFSO = Nothing

'------------------------------------------------------------------------------------------------------------
' Comment:
'------------------------------------------------------------------------------------------------------------
Sub IterateFolders(oStartFolder)

Dim oFile
Dim oFolder

For Each oFile In oStartFolder.Files
Response.Write oFile.Path & "<br />"
Next

For Each oFolder In oStartFolder.SubFolders
IterateFolders oFolder
Next

End Sub
Lignende emner