Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1184to1188
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

Unterverzeichnis durchsuchen

Unterverzeichnis durchsuchen
ChrisW
Hallo Leute,
Ich habe eine riesengroße Verzeichnisstruktur und möchte einen bestimmten Unterverzeichnispfad finden.
Ich weiss genau das dieses Verzeichnis nur einmal existiert.
Ich weiss weiterhin, das ich erst ab einer bestimmten Verzeichnistiefe suchen muss.
Beispiel:
Mein Verzeichnis enthält folgende ID: 068613 ich weiss aber nicht an welcher Stelle des Verzeichnisses diese Zahlenfolge enthalten ist.
Ich weiss das das gesuchte Verzeichnis in jedem Fall ein Unterverzeichnis von C:\Documents and Settings\Test sein muss, aber ich weiss nicht in welcher Verzeichnistiefe.
Ich möchte als Ergebnis den kompletten Pfad des gesuchten Verzeichnisses wie z.B. C:\Documents and Settings\Test\UV3\UUV2\Blabla068613blubbblubb
Ich hoffe Ihr könnt mir bei der Durchsuchung des Verzeichnissbaums mit VBA weiterhelfen.
Vielen Dank
Chris

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Unterverzeichnis durchsuchen
27.10.2010 16:09:19
Heiko
Hallo Chris,
z.B. so:
Public Sub SuchOrdner()
Dim MyFolders()
Dim strPfad As String
Dim lngI As Long
' Pfad Hier anpassen
strPfad = "C:\Copfgfffy\"
If Dir(strPfad, vbDirectory)  "" Then
' Pafd mit Unterordnern durchsuchen
fcnGetFolders strPfad, MyFolders, True
Else
MsgBox "Ordner nicht vorhanden!", vbCritical
Exit Sub
End If
For lngI = LBound(MyFolders) To UBound(MyFolders)
' Hier deine ID anpassen wenn nötig
If InStr(MyFolders(lngI), "068613") > 0 Then
MsgBox MyFolders(lngI)
Exit For
End If
Next lngI
End Sub

Public Function fcnGetFolders(strPath As String, arrDaten(), Optional bolSubFolder As Boolean =  _
False)
' So 08.11.2007
' Diese Function liest alle Ordner des bei strPath angegebenen Verzeichnisses auf und übergibt
' diese Liste an das bei arrDaten angegebene Datenfeld.
' Mit bolSubFolder kann angegeben werden ob Unterordner mit einbezogen werden sollen = True
' oder halt nicht dann = False oder nichts angeben.
Dim myFileSystemObject, MyFolders
Dim varhelp As Variant
Set myFileSystemObject = CreateObject("Scripting.FileSystemObject")
For Each MyFolders In myFileSystemObject.GetFolder(strPath).SubFolders
If bolSubFolder = True Then
' man beachte den rekursiven Aufruf von fcnGetFolders !!!
fcnGetFolders CStr(MyFolders), arrDaten, bolSubFolder
End If
On Error Resume Next
varhelp = arrDaten(0)
If Err.Number = 0 Then
ReDim Preserve arrDaten(UBound(arrDaten) + 1)
Else
ReDim Preserve arrDaten(0)
End If
On Error GoTo 0
arrDaten(UBound(arrDaten)) = MyFolders
Next MyFolders
Set myFileSystemObject = Nothing
End Function
Gruß Heiko
PS: Rückmeldung wäre nett!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige