Anzeige
Archiv - Navigation
1884to1888
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
Inhaltsverzeichnis

Dateiinformationen auslesen

Dateiinformationen auslesen
19.05.2022 10:24:55
Lutz
Hallo, um Dateiinformationen auszulsesen verwende ich diesen Code:
'----------------------------------------------------------------------'
' Dateien im akutellen Verzeichnis (in dem diese Datei steht) auslesen '
'----------------------------------------------------------------------'

Sub DateienAuflisten()
Dim i As Long
Dim objFileSystem As Object
Dim objVerzeichnis As Object
Dim objDateienliste As Object
Dim objDatei As Object
Dim Verzeichnis As String
Verzeichnis = ActiveWorkbook.Path
Set objFileSystem = CreateObject("scripting.FileSystemObject")
Set objVerzeichnis = objFileSystem.getfolder(Verzeichnis)
Set objDateienliste = objVerzeichnis.Files
i = 2
For Each objDatei In objDateienliste
If Not objDatei Is Nothing And Not Left(objDatei.Name, 1) = "~" Then
ActiveSheet.Cells(i, 2) = objDatei.Name
ActiveSheet.Cells(i, 1) = objVerzeichnis.Path
ActiveSheet.Cells(i, 4) = objVerzeichnis.Path & "\" & objDatei.Name
ActiveSheet.Cells(i, 3) = FileDateTime(objDatei)
i = i + 1
End If
Next objDatei
' Dateien in den Unterverzeichnissen auslesen '
Call UnterOrdnerAuslesen(objVerzeichnis)
End Sub

Sub UnterOrdnerAuslesen(ByVal strDateipfad As String)
Dim objFileSystem As Object
Dim objVerzeichnis As Object
Dim objUnterordner As Object
Dim objDatei2 As Object
Dim i As Long
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objVerzeichnis = objFileSystem.getfolder(strDateipfad)
For Each objUnterordner In objVerzeichnis.subfolders
For Each objDatei2 In objUnterordner.Files
If Cells(Rows.Count, 1).End(xlUp).Row > 1 Then
i = Cells(Rows.Count, 1).End(xlUp).Row + 1
Else
i = 2
End If
ActiveSheet.Cells(i, 2) = objDatei2.Name
ActiveSheet.Cells(i, 1) = objUnterordner.Path
ActiveSheet.Cells(i, 4) = objUnterordner.Path & "\" & objDatei2.Name
ActiveSheet.Cells(i, 3) = objDatei2.FileDateTime
i = i + 1
Next objDatei2
Call UnterOrdnerAuslesen(objUnterordner.Path)
Next objUnterordner
End Sub
Das auslesen des Datums (FileDateTime) funktioniert aber nur auf dem "Hauptverzeichnis". Beim Auslesen der Daten aus den Unterverzeichnissen erhalte ich einen Fehler.
Was ist falsch an meinem Code?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiinformationen auslesen
19.05.2022 11:41:22
Felix
Hallo Lutz, ohne Test würde ich vermuten, dass es an der Anweisung liegt.
Im ersten Codeabschnitt

ActiveSheet.Cells(i, 3) = FileDateTime(objDatei)
Im ersten Codeabschnitt

ActiveSheet.Cells(i, 3) = objDatei2.FileDateTime
Kann das sein?
VG Felix
AW: Dateiinformationen auslesen
19.05.2022 12:19:47
Lutz
Leider nein, auch wenn ich den Code umstelle von
ActiveSheet.Cells(i, 3) = objDatei2.FileDateTime
auf
ActiveSheet.Cells(i, 3) = FileDateTime(objDatei)
oder
ActiveSheet.Cells(i, 3) = FileDateTime(objDatei2)
oder
ActiveSheet.Cells(i, 3) = objDatei2.FileDateTime(objDatei2)
klappt es nicht
Anzeige
AW: Dateiinformationen auslesen
19.05.2022 15:20:42
Anton
Hallo Lutz,
probier es hiermit:

Sub DateienAuflisten()
Dim Verzeichnis As String
Verzeichnis = "C:\temp" 'anpassen
Call UnterOrdnerAuslesen(Verzeichnis)
End Sub
Sub UnterOrdnerAuslesen(ByVal strDateipfad As String)
Dim objFileSystem As Object
Dim objVerzeichnis As Object
Dim objUnterordner As Object
Dim objDatei As Object
Dim i As Long
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objVerzeichnis = objFileSystem.getfolder(strDateipfad)
For Each objDatei In objVerzeichnis.Files
With ActiveSheet
If .Cells(.Rows.Count, 1).End(xlUp).Row > 1 Then
i = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
Else
i = 2
End If
.Cells(i, 2) = objDatei.Name
.Cells(i, 1) = objDatei.ParentFolder.Path
.Cells(i, 4) = objDatei
.Cells(i, 3) = objDatei.DateLastModified
i = i + 1
End With
Next objDatei
For Each objUnterordner In objVerzeichnis.subfolders
Call UnterOrdnerAuslesen(objUnterordner.Path)
Next objUnterordner
Set objFileSystem = Nothing
End Sub
mfg Anton
Anzeige
AW: Dateiinformationen auslesen
19.05.2022 15:32:31
Lutz
Ja super, danke.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige