habe mal eine Frage:
Kann man die Festplatte C die darin enthaltenen Verzeichnisse auslesen bzw. ich brauch die Verzeichnis-
Größe ?
Wenn möglich in einer Datei ?
gruß WalterMB
Sub Verz_Größe_ermitteln()
Dim FSO As New Scripting.FileSystemObject
Dim Folder As Scripting.Folder
Set Folder = FSO.GetFolder("d:\1_Gesamtdaten\")
MsgBox Folder.Size
End Sub
Function FolderSize(ByVal strFolder As String) _
As Double
Dim FSO As New Scripting.FileSystemObject
Dim Folder As Scripting.Folder
' Ggf. abschliessenden Backslash anfügen
If Right$(strFolder, 1) <> "\" Then _
strFolder = strFolder & "\"
Set Folder = FSO.GetFolder(strFolder)
FolderSize = Folder.Size
End Function
Option Explicit
Dim FSO, FO, FU, F
Dim lRow As Long
Dim icol As Integer
Public Sub Ordner_Auflisten()
Set FSO = CreateObject("Scripting.FileSystemObject")
icol = 0
lRow = 0
GetSubFolders "C:\Excel"
End Sub
Function GetSubFolders(Pfad)
Set FO = FSO.GetFolder(Pfad)
Set FU = FO.SubFolders
Dim comText As String
On Error Resume Next
For Each F In FU
lRow = lRow + 1
icol = icol + 1
Cells(lRow, icol) = F.Name
comText = F.Size & " Byte"
Cells(lRow, icol).AddComment.Text Text:=comText
GetSubFolders F.Path
Next
icol = icol - 1
End Function
Option Explicit
Dim fso, FO, FU, F
Dim lRow As Long
Dim icol As Integer
Public Sub Ordner_Auflisten()
Set fso = CreateObject("Scripting.FileSystemObject")
icol = 0
lRow = 0
GetSubFolders "C:\Excel"
End Sub
Function GetSubFolders(Pfad)
Set FO = fso.getfolder(Pfad)
Set FU = FO.subfolders
On Error Resume Next
For Each F In FU
lRow = lRow + 1
icol = icol + 1
Cells(lRow, icol) = F.Name
Cells(lRow, icol + 1) = F.Size
GetSubFolders F.Path
Next
icol = icol - 1
End Function
Option Explicit
Dim Z
Public Sub Aufruf()
Dim Ordnerpfad
Dim dat
Set dat = Application.FileDialog(msoFileDialogFolderPicker)
Z = 1
With dat
.Title = "Einfach irgendwas..."
.InitialFileName = "d:\" 'oder was auch immer
If .Show = -1 Then Schreiben .SelectedItems(1), True
'true wenn die Unterordner auch wieder geschrieben werden sollen
'Sonst false oder weglassen
End With
End Sub
Public Function Schreiben(V, Optional sbfolds As Boolean = False)
Dim fso As Object
Dim datei
Dim Unterordner
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
Set datei = fso.getfolder(V)
Select Case sbfolds
Case True
For Each Unterordner In datei.subfolders
Cells(Z, 1) = Unterordner.Path
Cells(Z, 2) = Unterordner.Size
Z = Z + 1
Schreiben Unterordner, True
Next
Case False
For Each Unterordner In datei.subfolders
Cells(Z, 1) = Unterordner.Path
Cells(Z, 2) = Unterordner.Size
Z = Z + 1
Next
End Select
Set fso = Nothing
Set datei = Nothing
End Function
ransi
ALT + F11
, um den VBA-Editor zu öffnen.Option Explicit
Dim fso, FO, FU, F
Dim lRow As Long
Dim icol As Integer
Public Sub Ordner_Auflisten()
Set fso = CreateObject("Scripting.FileSystemObject")
icol = 0
lRow = 0
GetSubFolders "C:\DeinPfad" ' Passe den Pfad an
End Sub
Function GetSubFolders(Pfad)
Set FO = fso.getfolder(Pfad)
Set FU = FO.subfolders
On Error Resume Next
For Each F In FU
lRow = lRow + 1
icol = icol + 1
Cells(lRow, icol) = F.Name
Cells(lRow, icol + 1) = F.Size ' Größe in Byte
GetSubFolders F.Path
Next
icol = icol - 1
End Function
Ordner_Auflisten
aus, um die Verzeichnisstruktur in Excel anzuzeigen.Wenn du kein VBA verwenden möchtest, kannst du auch die Funktion DIR
nutzen, um Dateien und Ordner in Excel auszulesen. Hier ein Beispiel:
Sub VerzeichnisAuslesen()
Dim Ordner As String
Dim Datei As String
Dim Zeile As Integer
Ordner = "C:\DeinPfad\"
Datei = Dir(Ordner & "*.*")
Zeile = 1
Do While Datei <> ""
Cells(Zeile, 1).Value = Datei
Zeile = Zeile + 1
Datei = Dir
Loop
End Sub
Hier sind einige Anwendungsbeispiele, wie du die Excel VBA Ordnerstruktur auslesen kannst:
FileSystemObject
-Methode anwendest.On Error GoTo
zur besseren Fehlerbehandlung.Application.FileDialog
verwendest.1. Kann ich auch Netzlaufwerke auslesen?
Ja, du kannst auch Netzlaufwerke auslesen, solange du die richtigen Berechtigungen hast und den richtigen Pfad angibst.
2. Wie kann ich die Größe in MB oder GB anzeigen?
Um die Größe in MB oder GB anzuzeigen, teile die Byte-Größe durch 1024 (für MB) oder durch 1048576 (für GB).
3. Was mache ich, wenn der Code nicht funktioniert?
Überprüfe die Pfadangaben und stelle sicher, dass die Microsoft Scripting Runtime in den Verweisen aktiviert ist.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen