Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
492to496
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
492to496
492to496
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Verzeichnissgröße, Dateianzahl, Ordneranzahl

Verzeichnissgröße, Dateianzahl, Ordneranzahl
06.10.2004 11:24:14
Chris
Hy,
ich möchte von einem Ordner die Ordnergröße (bekomm ich hin), die Dateianzahl (sollte eigentlich gehen, tuts abernicht) und die Unterordneranzahl (öh ... ja) bekommen und in eine Exceltabelle eintragen.
Folgendes hab ich schon geschrieben und wie gesagt die Ordnergröße bekomm ich problemlos hin

Sub Laufallesab()
check = True
Counter = 2
Do Until check = False
Set curCell = Worksheets("Gesamtliste").Cells(Counter, 3)
If curCell.Value = "" Then
check = False
Else
ShowFolderSize curCell.Value, Counter
Counter = Counter + 1
End If
Loop
End Sub


Sub ShowFolderSize(filespec, row)
Dim fs, f, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(filespec)
s = f.Size
Set curSetCell = Worksheets("Gesamtliste").Cells(row, 7)
curSetCell.Value = s
With Application.FileSearch
.NewSearch
.LookIn = "C:\Win16app"
.SearchSubFolders = True
.Execute
MsgBox "There were " & .FoundFiles.Count & _
" file(s) found."
Set curSetCell = Worksheets("Gesamtliste").Cells(row, 5)
s = .FoundFiles.Count
curSetCell.Value = s
End With
End Sub

Danke für die Hilfe :)

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verzeichnissgröße, Dateianzahl, Ordneranzahl
06.10.2004 12:29:23
Axel
Hallo,
du nutzt hier zwei Objekte, die eigentlich nichts miteinander zu tuen haben.
Über das FSO (FileSystemObject) sind alle von dir erwarteten Informationen abrufbar.
Er stellt sich jetzt nur die Frage, ob die Angaben zu den Anzahl Dateien und Unterordner auf die 1. Ebene beschränkt sein soll oder über alle enthaltenen Unterordner ermittelt werden soll.
Für nur eine Ebene ist das ganz simpel:
Anzahl Dateien: f.Files.Count
Anzahl Unterordner: f.SubFolders.Count
Falls alle Ebenen durchforstet werden sollen, ist allerdings ein rekursiver Durchlauf notwendig, wie in unten folgendem Beispiel.
Um den Code zu testen, ist ein Verweis auf die "Mircosoft Scripting Runtime" zu setzen. Dadurch können die Objekte der Bibliothek direkt genutzt werden und müssen nicht per CreateObject() erzeugt werden.


Sub x()
   
   Dim fs As FileSystemObject
   Dim fld As Folder
   
   Dim lngFilesCount As Long
   Dim lngSubFolderCount As Long
   Dim strPath As String
   
   strPath = "C:\tmp"
   
   ' FSO-Objekt erzeugen
   Set fs = New FileSystemObject
   
   ' Folder-Objekt für Start-Verzeichnis erzeugen
   Set fld = fs.GetFolder(strPath)
   
   ' Daten abrufen
   GetPathInfo fld, lngFilesCount, lngSubFolderCount
   
   ' Ergebnisse im Direktfenster ausgeben
   Debug.Print "Anzahl enthaltener Dateien in " & strPath & ": " & lngFilesCount
   Debug.Print "Anzahl enthaltener Unterordner in " & strPath & ": " & lngSubFolderCount
   
   
End Sub
Sub GetPathInfo( _
   ByRef fld As Folder, _
   ByRef lngFilesCount As Long, _
   ByRef lngSubFolderCount As Long)
   
   Dim subfld As Folder
   
   ' Anzahl Dateien und Unterverzeichnisse aufaddieren
   lngFilesCount = lngFilesCount + fld.Files.Count
   lngSubFolderCount = lngSubFolderCount + fld.SubFolders.Count
   
   ' alle Unterverzeichnisse dieser Ebene durchlaufen
   For Each subfld In fld.SubFolders
      ' rekursiver Aufruf für alle Unterverzeichnisse einer Folgeebene
      GetPathInfo subfld, lngFilesCount, lngSubFolderCount
   Next
End Sub


Gruß
Axel
Anzeige
AW: Verzeichnissgröße, Dateianzahl, Ordneranzahl
06.10.2004 14:29:10
Chris
Danke, funktioniert wunderbar :)

28 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige