20. februar 2008 - 15:28Der 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!!
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.
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 ?
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
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.
Lad dig ikke narre af, at det står i ASP-sektionen :-)
Synes godt om
Ny brugerNybegynder
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.