Avatar billede cobra Nybegynder
08. august 2007 - 18:05 Der er 10 kommentarer og
1 løsning

Hvordan kan man tælle alle filer og mapper i alle sub mapper

Er der ikke en nem måde at tælle alle filer eller mapper i alle under mapper og sub mapper på.
Jeg ved at man kan tælle hvor meget de fylder hele vejen ned og hvor mange filer der er i undermappen.

Set objFSTx = CreateObject("Scripting.FileSystemObject")
Set objST = objFS.GetFolder(DirStart)
response.write objST.size&" kb."
response.write objST.Files.Count&" Filer"
Avatar billede w13 Novice
08. august 2007 - 18:27 #1
Det må være noget i stil med:
--------------------------------------------
Function CountFiles(DirStart)
  Set objFSO = CreateObject("Scripting.FileSystemObject").GetFolder(DirStart)
  For Each Item in objFSO.Files
    strCount = strCount+1
  Loop
  For Each Item in objFSO.SubFolder
    strCount = strCount+1
    CountFiles(Item.Path)
  Loop
End Function

strCount=0
CountFiles("/startmappe/")
Response.Write CountFiles
Avatar billede w13 Novice
08. august 2007 - 18:30 #2
Hov!
For Each Item in objFSO.SubFolder
skulle være
For Each Item in objFSO.SubFolders
Avatar billede w13 Novice
08. august 2007 - 18:32 #3
For Each Item in objFSO.Files
    strCount = strCount+1
  Loop
kan være:
  strCount=strCount+objFSO.Files.Count

Og:
Response.Write CountFiles
skulle have været:
Response.Write strCount
Avatar billede w13 Novice
08. august 2007 - 18:59 #4
Dvs.:
-------------------------------------------
Function CountFiles(DirStart)
  Set objFSO=CreateObject("Scripting.FileSystemObject").GetFolder(DirStart)
  strCount=strCount+objFSO.Files.Count
  For Each Item in objFSO.SubFolders
    strCount=strCount+1
    CountFiles(Item.Path)
  Loop
End Function

strCount=0
CountFiles("/startmappe/")
Response.Write strCount
Avatar billede w13 Novice
08. august 2007 - 19:03 #5
Og en, der også lige lukker objFSO :)
-----------------------------------
Function CountFiles(DirStart)
  Set objFSO=CreateObject("Scripting.FileSystemObject").GetFolder(DirStart)
  strCount=strCount+objFSO.Files.Count
  For Each Item in objFSO.SubFolders
    strCount=strCount+1
    CountFiles(Item.Path)
  Loop
  Set objFSO=Nothing
End Function

strCount=0
CountFiles("/startmappe/")
Response.Write strCount
Avatar billede cobra Nybegynder
08. august 2007 - 19:32 #6
Hejsa det er rigtigt..

Byttede bare Loop ud med next...
Men nu tæller den måde filer og mapper.
Kan den tælle dem op hver for sig?
Ellers virker det bare...
Avatar billede w13 Novice
08. august 2007 - 20:51 #7
Jep.

Function CountFiles(DirStart)
  Set objFSO=CreateObject("Scripting.FileSystemObject").GetFolder(DirStart)
  strCountFiles=strCountFiles+objFSO.Files.Count
  For Each Item in objFSO.SubFolders
    strCountFolders=strCountFolders+1
    CountFiles(Item.Path)
  Loop
  Set objFSO=Nothing
End Function

strCountFiles=0
strCountFolders=0
CountFiles("/startmappe/")
Response.Write "Filer: "&strCountFiles
Response.Write "Mapper: "&strCountFolders
Avatar billede nielle Nybegynder
08. august 2007 - 20:58 #8
I stedet for at tælle en fil ad gangen via en loop, hvorfor så ikke få antallet direkte via:

objST.Files.Count
Avatar billede cobra Nybegynder
08. august 2007 - 23:22 #9
Giver du ikke lige et svar..så jeg kan give nogen point
Avatar billede w13 Novice
09. august 2007 - 04:14 #10
Jepper. Dejligt :)
Avatar billede w13 Novice
10. august 2007 - 01:21 #11
Danke!
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