Avatar billede jlemming Nybegynder
20. februar 2008 - 15:28 Der er 6 kommentarer og
1 løsning

lister over undermapper, subfolders

Hej

Er der nogen der har løsning på, hvordan man laver en liste over subfolders, fra det bibliotek man står i. Jeg kan godt lave en workaround liste via filesearch og så kun tage bibliotekerne ud af tekst strengen, men der må være en mere korrekt måde. Har kigget en del på SearchScope og ScopeFolder men kan ikke få det til at virke. Kan I hjælpe?

I må sige til, hvis der skal flere point på højkant!!
Avatar billede word-hajen Nybegynder
20. februar 2008 - 17:11 #1
Prøv at kigge på http://www.eksperten.dk/spm/819641

Der løber koden igennem diverse underfoldere, og selv om den her lister de filer, der er i folderen for derefter at tage fat på underfoldere, giver den en meget god idé til, hvad du kan.
Avatar billede jlemming Nybegynder
20. februar 2008 - 21:02 #2
Jeg må indrømme jeg ikke helt forstår koden, jeg skal nok have lidt mere hjælp. Vil koden også virke på andre maskine, hvor reference, Microsoft Scripting Runtime ikke er sat. Følger det med i min fil ?
Avatar billede word-hajen Nybegynder
20. februar 2008 - 21:29 #3
Referencen følger med filen, og så længe filen, som der refereres til, eksisterer på "den næste pc", er der ingen problemer. Scripting Runtime er en del af standard-installationen, så det giver ikke problemer.

Nedenstående løber alle foldere igennem fra et startpunkt, som du angiver i proceduren GetAllSubFolders. Når den er færdig med at køre, har du i strFolders en samlet streng med alle foldere adskilt med linjeskift. Jeg ved ikke, hvad du ønsker at gøre med listen, men i nedenstående kode bliver den printet til Immediate-vinduet.

**************
Public Sub GetAllSubFolders()
    Dim strFolders As String
   
    Call ListSubFolders("C:\Samples", strFolders)
    Debug.Print strFolders
End Sub


Public Sub ListSubFolders(strFolder As String, Optional strFolders As String)
    Dim objFS As Scripting.FileSystemObject
    Dim objStartFolder As Folder
    Dim objFolderInFolder As Folder
   
    Set objFS = New Scripting.FileSystemObject
    Set objStartFolder = objFS.GetFolder(strFolder)
   
    For Each objFolderInFolder In objStartFolder.SubFolders
        strFolders = strFolders & objFS.BuildPath(objStartFolder.Path, objFolderInFolder.Name) & vbCr
        Call ListSubFolders(objFS.BuildPath(objStartFolder.Path, objFolderInFolder.Name), strFolders)
    Next objFolderInFolder
   
    Set objFS = Nothing
    set objStarFolder = nothing
End Sub
Avatar billede jlemming Nybegynder
21. februar 2008 - 18:55 #4
Hov, den har ikke indlagt mit indlæg fra iaftes.

Nu har jeg forstået det, det meste :o), selv om jeg finder det unaturlig/ulovlig, at funktionen kan kalde sig selv, det kan jo være en uendelig løkke!

smid du bare et svar, og takker :o)
Avatar billede word-hajen Nybegynder
21. februar 2008 - 22:55 #5
Du har fuldstændig ret; det kan være en uendelig løkke, men det passer jo meget godt med foldere i foldere. Hvis du ikke er vild med det, kan du bygge en tæller med ind, så du får afbrudt den efter et eller antal gennemløb.
Avatar billede jlemming Nybegynder
22. februar 2008 - 07:59 #6
Hvor finder man forresten hjælp/opslag til funktioner som findes i referencen?
Avatar billede word-hajen Nybegynder
22. februar 2008 - 08:34 #7
http://www.w3schools.com/asp/asp_ref_filesystem.asp

Lad dig ikke narre af, at det står i ASP-sektionen :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester