---
title: "katalog med fillista i trädform"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/71614-katalog-med-fillista-i-trädform"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Jesper T"
published: "2003-03-19T23:14:58.000Z"
updated: "2003-03-28T22:22:23.000Z"
replies: 16
views: 635
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/71614-katalog-med-fillista-i-trädform"
---

# katalog med fillista i trädform

## #1 — Jesper T, 2003-03-19T23:14Z

Skulle behöva en filkatalog som ligger i en trädstruktur med expanderbara mappar. Har någon sätt en sådan någon stans?

Permalänk: https://www.webforum.nu/p/71614

## #2 — Vide, 2003-03-20T07:29Z

Kolla in [Dimacs SiteTree](http://www.dimac.net/Websites/dimac/Website/Products/w3SiteTree). :)

Permalänk: https://www.webforum.nu/p/984268

## #3 — Jesper T, 2003-03-20T13:49Z

Vide: Tack men det var någon slags betalkomponent, det är inte riktigt intressant.

Jag får göra en själv.

Går det på något vis att loopa ut alla foldrar subfoldrar och filer?
I detta exempel så lopas endast aktuell struktur i aktuell mapp.

```
Dim strfolder,rootname,Dirfolder
strfolder = "docs/"
rootname = server.mappath("docs")& "\"
Dirfolder = request.querystring("dir")

Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder(rootname & Dirfolder)
set Files = Folder.Files

'Lite obetydande kod

For each Item in Folder.SubFolders
   response.write "<img src=imgs/folder_close.gif width=16 height=15>&nbsp;<a href='" & strScriptname & "?Dir="&dirfolder&"\"&Item.Name & "'>" & Item.Name & "</A><br>"
Next

For each Item In Files
   response.write "<img src=imgs/"& fileType(Item.Name)& " width=20 height=17><a href="&strFolder&dirfolder&"\"&Item.Name&">"&Item.Name&"</A><br>"
Next
```

Permalänk: https://www.webforum.nu/p/984460

## #4 — Vide, 2003-03-20T14:15Z

Du får bygga en rekursiv funktion som letar sig på djupet också. :)

\[R\] Vad säger jag för något? Vill du ha den dynamisk på klientsidan också så måste du bygga en rekursiv funktion, annars kan du bara skicka med aktuell folder för att få subfoldrar och filer.

Sedan får du bygga en funktion som hämtar sökvägen "ovanför" den mapp du står i, och skriva ut den.

Permalänk: https://www.webforum.nu/p/984477

## #5 — solbulle, 2003-03-20T14:19Z

Den redigerar vi bort igen pga av en liten bugg.   :e

Permalänk: https://www.webforum.nu/p/984478

## #6 — Jesper T, 2003-03-20T14:54Z

> **Vide skrev:**
>
> annars kan du bara skicka med aktuell folder för att få subfoldrar och filer.

Vad menar du med det? Jag skulle vilja ha den så här:

```
[red]Mapp1
   UnderMapp1.1
       Fil1.1.1
       Fil1.1.2
   UnderMapp1.2
   UnderMapp1.3
Mapp2
   UnderMapp2.1
       Fil2.1.1
Mapp3
 osv...[/red]
```

Permalänk: https://www.webforum.nu/p/984498

## #7 — solbulle, 2003-03-20T15:13Z

Det ska väl inte vara så svårt? Du har ju redan nu i princip en funktion. Gör en funktion eller sub av den kod du har, sen ser du till att köra den rekursivt inne i  funktionen/subben på alla katalogerna du finner...  (Går det? ;) )

Permalänk: https://www.webforum.nu/p/984516

## #8 — Vide, 2003-03-20T15:16Z

solbulle, precis vad jag menade... och ja, det går. ;)

Permalänk: https://www.webforum.nu/p/984521

## #9 — solbulle, 2003-03-20T15:34Z

Typ detta listar ju en del...

```
<%
Dim strfolder,rootname,Dirfolder
strfolder = "docs/"
rootname = server.mappath("docs")& "\"
Dirfolder = request.querystring("dir")

Call explorer(rootname,Dirfolder)

Sub explorer(rootname,Dirfolder)

Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder(rootname & Dirfolder)
set Files = Folder.Files

'Lite obetydande kod

For each Item in Folder.SubFolders
   response.write "<img src=imgs/folder_close.gif width=16 height=15> <a href='" & strScriptname & "?Dir="&dirfolder&"\"&Item.Name & "'>" & Item.Name & "</A><br>"
Call explorer(rootname,Dirfolder&"/"&Item.Name)
Next

For each Item In Files
   response.write "<img src=imgs/"& fileType(Item.Name)& " width=20 height=17><a href="&strFolder&dirfolder&"\"&Item.Name&">"&Item.Name&"</A><br>"
Next

End Sub
%>
```

Permalänk: https://www.webforum.nu/p/984536

## #10 — Jesper T, 2003-03-21T08:38Z

Härligt, solbulle!

Permalänk: https://www.webforum.nu/p/984899

## #11 — Jesper T, 2003-03-21T11:03Z

Jag får lite fel på denna rad, något strular:

> Microsoft VBScript runtime error '800a000d' 
> 
> Type mismatch: 'GetSubFolders' 
> 
> filetree.asp, line 45

 

```
Dim rootname, fso, folder
rootname = server.mappath("docs")& "\"
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(rootname)

[b]Rad 45-->[/b]Response.Write "<UL>" &  GetSubFolders(folder) & "</UL>"

Sub GetSubFolders(pfolder)
    Dim sFolders, fldr, fil
    sFolders = "<LI>" & pfolder.Name

    If pfolder.SubFolders.Count > 0 Or pfolder.Files.Count > 0 Then _
        sFolders = sFolders & "<UL>"

    For Each fldr In pfolder.SubFolders
        sFolders = sFolders & GetSubFolders(fldr)
    Next
    
    For Each fil In pfolder.Files
        sFolders = sFolders & "<LI>" & fil.Name & "</LI>"
    Next
    
    If pfolder.SubFolders.Count > 0 Or pfolder.Files.Count > 0 Then _
        sFolders = sFolders & "</UL>"
    
    sFolders = sFolders & "</LI>"

    Set fil = Nothing
    Set fldr = Nothing
    
    GetFolder = sFolders
End Sub
```

Permalänk: https://www.webforum.nu/p/985027

## #12 — Vide, 2003-03-21T11:18Z

Skall du använda den som en funktion (återge ett värde) så måste du göra det också. ;)

```
[b]function[/b] GetSubFolders(pfolder)
    Dim sFolders, fldr, fil
    sFolders = "<LI>" & pfolder.Name

    If pfolder.SubFolders.Count > 0 Or pfolder.Files.Count > 0 Then _
        sFolders = sFolders & "<UL>"

    For Each fldr In pfolder.SubFolders
        sFolders = sFolders & GetSubFolders(fldr)
    Next
    
    For Each fil In pfolder.Files
        sFolders = sFolders & "<LI>" & fil.Name & "</LI>"
    Next
    
    If pfolder.SubFolders.Count > 0 Or pfolder.Files.Count > 0 Then _
        sFolders = sFolders & "</UL>"
    
    sFolders = sFolders & "</LI>"

    Set fil = Nothing
    Set fldr = Nothing
    
    [b]GetSubFolders[/b] = sFolders
End [b]function[/b]
```

Permalänk: https://www.webforum.nu/p/985034

## #13 — Jesper T, 2003-03-21T14:18Z

En sista fråga: Går det att få hela sökvägen till filen ifrån "rootname" här?

```
For Each fil In pfolder.Files
        sFolders = sFolders & "<LI>" & [b]fil.Name[/b] & "</LI>"
    Next
```

Permalänk: https://www.webforum.nu/p/985151

## #14 — Jesper T, 2003-03-21T15:35Z

Någon, som vet?

Permalänk: https://www.webforum.nu/p/985193

## #15 — Jesper T, 2003-03-22T17:33Z

Jag har kört fast, kan ingen hjälpa mig?

Permalänk: https://www.webforum.nu/p/985770

## #16 — Jacob, 2003-03-28T22:01Z

Jag är oxå väldigt sugen på att veta hur man får tag i rootnamnet.

Permalänk: https://www.webforum.nu/p/993249

## #17 — Jacob, 2003-03-28T22:22Z

Hittade det:
fil.path

Permalänk: https://www.webforum.nu/p/993259

---

Tråden på webben: https://www.webforum.nu/amne/asp/71614-katalog-med-fillista-i-trädform
