Unser heutiger Tipp zeigt, wie sich unter Einbeziehung des FileSystemObjekt (FSO) folgende Ordner-Informationen ermitteln lassen:
Setzen Sie hierzu zunächst einen Verweis auf die Microsoft Scripting Runtime-DLL (Menü Projekt - Verweise). Und hier der Code ' Ordner-Informationen ermitteln ' + Gesamtgröße ' + Anzahl enthaltener Ordner ' + Anzahl enthaltener Dateien Private Sub GetFolderInfo(ByVal FolderSpec As String, _ ByRef folder_cnt As Long, ByRef file_cnt As Long, _ ByRef folder_size As Currency) Dim FSO As Scripting.FileSystemObject Dim nFolder As Folder ' Verweis auf FSO-Objekt Set FSO = New Scripting.FileSystemObject ' ggf. abschließenden Backslash hinzufügen If Right$(FolderSpec, 1) <> "\" Then _ FolderSpec = FolderSpec & "\" ' Prüfen, ob der Ordner existsiert If FSO.FolderExists(FolderSpec) Then ' Folder-Objekt erstellen Set nFolder = FSO.GetFolder(FolderSpec) ' Größe des Ordners folder_size = nFolder.Size ' Informationen über alle Unterordner und ' Dateien ermitteln Call zGetFolderInfo(nFolder, folder_cnt, file_cnt) ' Anzahl Gesamt-Ordner folder_cnt = folder_cnt + nFolder.SubFolders.Count ' Anzahl Gesamt-Dateien file_cnt = file_cnt + nFolder.Files.Count ' Folder-Objekt "zerstören" Set nFolder = Nothing End If Set FSO = Nothing End Sub ' Informationen über Unrdordner ermitteln ' ACHTUNG REKURSIV! Private Sub zGetFolderInfo(ByVal nFolder As Folder, _ ByRef folder_cnt As Long, ByRef file_cnt As Long) Dim nSubFolder As Folder For Each nSubFolder In nFolder.SubFolders ' Hier wird die Funktion rekursiv aufgerufen! Call zGetFolderInfo(nSubFolder, folder_cnt, file_cnt) ' Anzahl Unterordner aktualisieren folder_cnt = folder_cnt + nSubFolder.SubFolders.Count ' Anzahl Dateien aktualisieren file_cnt = file_cnt + nSubFolder.Files.Count Next End Sub ' Skalierte Darstellung der Bytes in der entsprechend ' best darstellbaren Größenangabe Private Function Bytes2String(Bytes As Currency) As String Dim EinheitName As Variant Dim EinheitFormat As Variant EinheitName = Array("Byte", "Byte", "Byte", "KB", _ "KB", "KB", "MB", "MB", "MB", "GB", "GB", "GB", "TB", "TB", "TB") EinheitFormat = Array("0", "0", "0", "0.00", "0.0", _ "0.0", "0.00", "00.0", "0.0", "0.00", "0.0", "0.0", "0.00", _ "0.0", "0.0") Dim i As Integer i = Int(Log10(Bytes)) Bytes2String = Format$(Bytes / 1024 ^ Int(i / 3), _ EinheitFormat(i)) & " " & EinheitName(i) End Function Static Function Log10(X As Currency) As Currency If X = 0 Then Log10 = 0 Else Log10 = Log(X) / Log(10#) End If End Function Beispiel Dim file_cnt As Long Dim folder_cnt As Long Dim folder_size As Currency Dim sFolderPath As String Screen.MousePointer = vbHourglass sFolderPath = "c:\windows" GetFolderInfo sFolderPath, folder_cnt, _ file_cnt, folder_size lblInfo(0).Caption = Bytes2String(folder_size) lblInfo(1).Caption = CStr(folder_cnt) lblInfo(2).Caption = CStr(file_cnt) Screen.MousePointer = vbNormal Dieser Tipp wurde bereits 20.280 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Access-Tools Vol.1 ![]() Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB Tipp des Monats Dietrich Herrmann Einsatz einer DimmingForm Es wird eine Form vorgestellt, mit deren Hilfe man den gesamten Bildschirm auf verschiedene Arten mit transparenter Farbe überdecken und nur eine eigene Form im Vordergrund zeigen kann. sevAniGif (VB/VBA) ![]() Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. |
||||||||||||||||
|
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |
|||||||||||||||||



Ausgabe von Ordner-Informationen (Größe, usw.)


