Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1488to1492
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

Verzeichnis auslesen auf Unterordner erweitern

Verzeichnis auslesen auf Unterordner erweitern
06.05.2016 11:20:52
Constantin
Hallo,
da ich Dateieigenschaften auslesen möchte, bin ich mit dem Hinweis auf nachfolgendes Programm schon ein Stück weitergekommen.
Soweit ich erkennen kann, wird nur das Ausgangsverzeichnis ausgelesen und keine Unterordner. Ließe sich das noch einbauen? Der Pfad sollte dann in einer eigenen Spalte stehen. Falls möglich, der Dateiname noch mit der Extension ergänzt.
Im Voraus vielen Dank für eine Rückmeldung.
Grüße, Constantin
Sub Einlesen()
Dim myPath
Dim fd As FileDialog
Dim datei As String
Dim Ze As Long, AnzZe As Long
Const AnzSp As Long = 35
Dim arrHeaders, arrErg
Dim objShell As Object, objFolder As Object, strFilename As Variant
Dim I As Long
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
If fd.Show Then
Cells(4, 1).CurrentRegion.ClearContents
myPath = fd.SelectedItems(1)
Cells(1, 2).Value = myPath & "\"
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(myPath)
ReDim arrHeaders(1 To 2, 1 To AnzSp)
For I = 1 To AnzSp
arrHeaders(2, I) = I - 1
arrHeaders(1, I) = objFolder.GetDetailsOf(objFolder.Items, I - 1)
Next
Cells(4, 1).Resize(2, AnzSp) = arrHeaders
AnzZe = objFolder.Items.Count
ReDim arrErg(1 To AnzZe, 1 To AnzSp)
For Each strFilename In objFolder.Items
If objFolder.GetDetailsOf(strFilename, 2)  "Dateiordner" Then
Ze = Ze + 1
Application.StatusBar = "Gelesen: " & Ze & " von " & AnzZe
For I = 1 To AnzSp
arrErg(Ze, I) = Trim(objFolder.GetDetailsOf(strFilename, I - 1))
Next
End If
Next strFilename
Cells(6, 1).Resize(AnzZe, AnzSp) = arrErg
Application.StatusBar = False
End If
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verzeichnis auslesen auf Unterordner erweitern
06.05.2016 13:11:41
Constantin
Hallo Hajo,
danke für den Link. Das Programm verwende ich bereits. Mir fehlt "nur" noch die Brücke zu den speziellen Dateieigenschaften, wie z.B. den Autor etc. Diese werden mit dem angegebenen Programm ausgelesen. Leider geht es nicht in die Tiefe, d.h. bezieht die Unterordner nicht ein (wie es eben bei deinem Programm bereits der Fall ist). Deswegen die Hoffnung, man könne diese Unterordner hier evtl. auch einbeziehen.
Grüße, Constantin

Anzeige
AW: Verzeichnis auslesen auf Unterordner erweitern
06.05.2016 13:31:47
Hajo_Zi
Hallo Constantin,
die Frage nach dem Autor wurde doch in dem anderen Beitrag beantwortet.
Gruß Hajo

AW: Verzeichnis auslesen auf Unterordner erweitern
06.05.2016 14:17:54
Constantin
Hallo Hajo,
das angelistete Programm stammt aus diesem Lösungsansatz und schien mir am ehesten umsetzbar, nicht nur einen Ordner auszulesen sondern auch die Unterordner.
Grüße, Constantin

AW: Verzeichnis auslesen auf Unterordner erweitern
06.05.2016 14:31:02
Michael
Hi zusammen,
tjaja, der alte Thread ist ja sogar noch zu sehen:
https://www.herber.de/forum/messages/1491388.html
Eine Recherche nach: excel vba shell getdetailsof subdirectory
findet z.B. eine rekursive Variante, die auch Unterverzeichnisse listet:
http://www.vbaexpress.com/kb/getarticle.php?kb_id=405
Lustig finde ich, daß man einen timeout in MINUTEN (nicht Sekunden) angeben kann, und das braucht's wohl auch...
Ich habe mal ne halbe Stunde herumgesucht, aber es scheint keine andere Möglichkeit als das Shell-Objekt zu geben, um an diese Daten zu kommen.
Schöne Grüße,
Michael
P.S.: If Rechner Then Hajo.WiederDa = True

Anzeige
AW: Verzeichnis auslesen auf Unterordner erweitern
06.05.2016 16:09:18
Constantin
... ihr habt ja recht. Sorry. Mit dem zweiten Link (bzw. nur Programm-Code) kam ich nicht so klar. Mit der Download-Datei klappte jetzt das Auslesen. Etwas irritiert bin ich allerdings, dass in der Spalte "Author" meistens nur "Document" steht. Was es bei meinem Ergebnis auch gibt, sind Dateinamen, die mit ῀$... beginnen und als "Zweitsatz" auftreten (im gleichen Pfad), jedoch eine andere Dateigröße zugewiesen bekommen haben (alle, bis auf eine Datei den Wert 162). Kann dies mit der verwendeten Version o. Ä. zusammenhängen?
Grüße, Constantin

Wer lesen kann, ist klar im Vorteil...
06.05.2016 16:28:26
Michael
Hi Constantin,
sieh Dir mal die Codezeilen an:
        X(i, 1) = oFolder.path
X(i, 2) = Fil.Name
X(i, 3) = Fil.DateLastAccessed
X(i, 4) = Fil.DateLastModified
X(i, 5) = Fil.DateCreated
X(i, 6) = Fil.Type
X(i, 7) = Fil.Size
X(i, 8) = objFolder.GetDetailsOf(objFolderItem, 8)
X(i, 9) = objFolder.GetDetailsOf(objFolderItem, 9)
X(i, 10) = objFolder.GetDetailsOf(objFolderItem, 10)
X(i, 11) = objFolder.GetDetailsOf(objFolderItem, 14)

alles, was nach fil. kommt, sind Standard-Attribute, nur die unteren vier erweiterte, die mit getdetailsof ermittelt werden.
Die Problematik mit der NUMMER des "Author" (also in dem Fall die 9 bei: (objFolderItem, 9)) hatte ich Dir bereits verlinkt, schau nochmal in den ersten Thread!
Das mit den $... keine Ahnung, Link-Datein? Sicherungskopien? Klick mal eine im Win-Explorer an und sieh in die Eigenschaften...
Schöne Grüße,
Michael

Anzeige
AW: aha...
06.05.2016 16:49:51
Constantin
Hallo Michael,
... stimmt - richtige Attributnummer, richtiges Ergebnis. Das passt.
Nochmals vielen Dank für eure Hilfe.
Grüße, Constantin

ok, freut mich, danke für die Rückmeldung,
06.05.2016 17:57:18
Michael
Constantin,
und Grüße zurück,
Michael

AW: Verzeichnis auslesen auf Unterordner erweitern
06.05.2016 16:28:11
Constantin
... ihr habt ja recht. Sorry. Mit dem zweiten Link (bzw. nur Programm-Code) kam ich nicht so klar. Mit der Download-Datei klappte jetzt das Auslesen. Etwas irritiert bin ich allerdings, dass in der Spalte "Author" meistens nur "Document" steht. Was es bei meinem Ergebnis auch gibt, sind Dateinamen, die mit ῀$... beginnen und als "Zweitsatz" auftreten (im gleichen Pfad), jedoch eine andere Dateigröße zugewiesen bekommen haben (alle, bis auf eine Datei den Wert 162). Kann dies mit der verwendeten Version o. Ä. zusammenhängen?
Grüße, Constantin
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige