Avatar billede krogstrup Nybegynder
28. juli 2005 - 08:20 Der er 10 kommentarer og
1 løsning

Oprette array med alle filer fra mappe og dens undermapper

Jeg har nedenstående funktion som udskriver alle filer der findes i en given mappe og dens undermapper.

Function ShowFolderList(folderspec)
  Dim fso, f, f1, s, sf, file
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetFolder(folderspec)
  Set sf = f.SubFolders
  For Each f1 in sf
      For Each file in f1.Files
        s = s & file.Name & "<br>"
      Next
      s = s & ShowFolderList(f1.Path)
  Next
  ShowFolderList = s
End Function

Men hvordan omskriver jeg funktionen så den i stedet for at returnere en variabel indeholdende en HTML formateret liste, returerer et array indeholdende samtlige filer der er fundet under hovedmappen ?
Avatar billede busschou Praktikant
28. juli 2005 - 08:25 #1
Function ShowFolderList(folderspec)
  Dim fso, f, f1, s, sf, file
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetFolder(folderspec)
  For Each file in f.Files
    s = s & file.Name & ","
  Next
  ShowFolderList = Split(Left(s,Len(s)-1),",")
End Function
Avatar billede busschou Praktikant
28. juli 2005 - 08:26 #2
Det burde lave en kommasepereret streng med alle fil navnene i den valgte mappe
Den splittes så til et array og returneres
Avatar billede busschou Praktikant
28. juli 2005 - 08:27 #3
Det er så kun for hovedmappen, hvis du ønsker _alle_ filer også i under mapper så
--
Function ShowFolderList(folderspec)
  Dim fso, f, f1, s, sf, file
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetFolder(folderspec)
  Set sf = f.SubFolders
  For Each f1 in sf
      For Each file in f1.Files
        s = s & file.Name & ","
      Next
      s = s & ShowFolderList(f1.Path)
  Next
  ShowFolderList = Split(Left(s,Len(s)-1),",")
End Function
Avatar billede busschou Praktikant
28. juli 2005 - 08:27 #4
hov nej den går så ikke rekursivt, sorry!
Avatar billede krogstrup Nybegynder
28. juli 2005 - 08:28 #5
jeg har netop brug for at alle filer (også fra undermapper) medtages.
Avatar billede busschou Praktikant
28. juli 2005 - 08:30 #6
ok så er du nød til at splitte strengen bagefter
---
Function ShowFolderList(folderspec)
  Dim fso, f, f1, s, sf, file
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetFolder(folderspec)
  Set sf = f.SubFolders
  For Each f1 in sf
      For Each file in f1.Files
        s = s & file.Name & ","
      Next
      s = s & ShowFolderList(f1.Path)
  Next
  ShowFolderList = Left(s,Len(s)-1)
End Function
--
og så
mitArr = Split(ShowFolderList(sti),",")
Avatar billede krogstrup Nybegynder
28. juli 2005 - 08:30 #7
men selv om funktionen er rekursiv kan jeg vel godt tage udgangspunkt i din idé med at opbygge en variabel med komma separeret indhold

så kan jeg altid splitte indholdet til et array, efter at have kaldt funktionen og modtaget det komma separerede indhold
Avatar billede krogstrup Nybegynder
28. juli 2005 - 08:30 #8
2 hoveder - een tanke

hehe :-)
Avatar billede busschou Praktikant
28. juli 2005 - 08:31 #9
yup yup :o), ganske utestet men burde virke :o)
Avatar billede krogstrup Nybegynder
28. juli 2005 - 08:31 #10
det har du ret i.

Takker for hurtig respons :-)

Smider du et svar ?
Avatar billede busschou Praktikant
28. juli 2005 - 08:32 #11
Det var så lidt , og ja gerne :o)
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
Kurser inden for grundlæggende programmering

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