Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
888to892
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
888to892
888to892
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

FileSystemObject Frage

FileSystemObject Frage
29.07.2007 02:15:00
Paul
hi nochmals,
nach einigem Suchen haben ich doch etwas passendes gefunden, das aber jedoch einen Fehler hat, oder bei mir nicht richtig funzt.
Code:

Function GetFiles(strPath As String, _
dctDict As Scripting.Dictionary, _
Optional blnRecursive As Boolean) As Boolean
' This procedure returns all the files in a directory into
' a Dictionary object. If called recursively, it also returns
' all files in subfolders.
Dim fsoSysObj      As Scripting.FileSystemObject
Dim fdrFolder      As Scripting.Folder
Dim fdrSubFolder   As Scripting.Folder
Dim filFile        As Scripting.File
' Return new FileSystemObject.
Set fsoSysObj = New Scripting.FileSystemObject
On Error Resume Next
' Get folder.
Set fdrFolder = fsoSysObj.GetFolder(strPath)
If Err  0 Then
' Incorrect path.
GetFiles = False
GoTo GetFiles_End
End If
On Error GoTo 0
' Loop through Files collection, adding to dictionary.
For Each filFile In fdrFolder.Files
dctDict.Add filFile.path, filFile.path
Next filFile
' If Recursive flag is true, call recursively.
If blnRecursive Then
For Each fdrSubFolder In fdrFolder.SubFolders
GetFiles fdrSubFolder.path, dctDict, True
Next fdrSubFolder
End If
' Return True if no error occurred.
GetFiles = True
GetFiles_End:
Exit Function
End Function


und zwar nimmt er all die leeren Ordner nicht ins Dictionary auf. Warum?
Laut Mixrosoft HP:
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnarofftalk/html/office09072000.asp
funktioniert der Code.
Kennt sonst noch wer den Fehler?
danke,
Paul

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: FileSystemObject Frage
29.07.2007 02:39:00
Nepumuk
Hallo Paul,
weil der Code nur Dateien aufnimmt. Oder siehst du irgendwo eine Zeile in der per Add - Methode ein Ordner aufgenommen wird?
Gruß
Nepumuk

AW: FileSystemObject Frage
29.07.2007 20:01:00
Paul
ähm ja, weiter unten, unter subfolders: *.path
falls dir das noch nicht aufgefallen ist, es werden sowohl dateien als auch ordner in der dirct gespeichert, da brauch ich kein Add. Habe auch selber schon eine Tabelle damit befüllt. (sprich also mit der test sub) und da habe ich nur die ordner angezeigt bekommen, in denen auch files vorhanden waren. ich will aber alle!!!
nun ja soweit kenn ich mich schon noch aus. also bitte nochmals um hilfe und um keine halbherzigen antworten, da die mich nicht weiterbringen. danke
gruß
Paul

Anzeige
AW: FileSystemObject Frage
29.07.2007 20:20:11
Horst
Hi,
für jemand, der Hilfe erwartet, ist dein Ton ganz schön flapsig.
mfg Horst

AW: FileSystemObject Frage
29.07.2007 20:29:00
Paul
sorry,
bin aber ziemlich entnervt. nicht übel nehmen

AW: FileSystemObject Frage
29.07.2007 20:57:25
Ramses
Hallo
"....und um keine halbherzigen antworten..."
Da hast du dich wahrscheinlich um die einzige Chance gebracht dein Problem zu lösen.
Ausserdem solltest du vorsichter sein mit deinen Aussagen, und die Beschreibung auf der MS-Homepage mal etwas genauer lesen
"...It then loops through the Files collection of that folder and adds the path and file name for each file to the Dictionary object...."
Also ich lese das so:
Wo keine Files,... da kein Folder.
Der Code ist nicht entsprechend aufgebaut.
Gruss Rainer

Anzeige
AW: FileSystemObject Frage
29.07.2007 21:22:01
Paul
Mann Leute,
sorry, dass das so forsch klingt, ist aber nicht so gemeint, es ist halt so, dass mich das Problem voll fertig macht. Ich bitte euch, helft mir dabei. Ich tüftle schon seit einiger Zeit daran und ja die Zeile habe ich wohl überlesen. Was wäre da die Rätselslösung?
Ich bin über jeden Vorschlag froh, nur empfinde ich solche Antowrten, wie die vom Nepumuk sehr demotivierend. Auch bei meinem vorherigen Thread.
Sorry nochmal.
Paul

AW: FileSystemObject Frage
29.07.2007 22:46:00
Nepumuk
Hallo Paul,
um einen Eintrag in einem Dictionary - Objekt vorzunemen ist die Add - Methode unerlässlich. Die einzige Zeile in der Funktion in welcher diese Methode angewendet wird ist diese:
dctDict.Add filFile.Path, filFile.Path
Und in dieser Zeile werden nur Dateien hinzugefügt, keine Ordner. Also erzähl mir nichts von Ordnern die du aufgelistet bekommen hast, auf keinen Fall mit diesem Code.
Füge hier diese Zeile ein, dann hast du dein Ordner:

If blnRecursive Then
For Each fdrSubFolder In fdrFolder.SubFolders
dctDict.Add fdrSubFolder.Path, fdrSubFolder.Path '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
GetFiles fdrSubFolder.Path, dctDict, True
Next fdrSubFolder
End If


Gruß
Nepumuk

Anzeige
AW: FileSystemObject Frage
29.07.2007 23:07:00
Paul
@nepumuk: tausend dank
es funzt.
;)
gruss
Paul

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige