Hallo
mit einer rekursiven Funktion ist das kein Problem. Den Laufwerksbuchstaben muss man allerdings trotzdem noch extra angeben. Zwar kann man die zur Verfügung stehenden Laufwerksbuchstaben über API´s finden, allerdings ist das den Aufwand wohl nicht wert.
Hier ein kleines Sample. Verweis auf die Microsoft Scripting Runtime setzen und ....
-------------------------------------
Dim oFSO As New FileSystemObject
Private Sub Form_Load()
Dim sFileName As String
sFileName = "postinfo.html"
MsgBox SearchFile(sFileName, "C:\inetpub\")
End Sub
Private Function SearchFile(sFileName As String, sStartPath As String)
Dim oFld As Folder
Set oFld = oFSO.GetFolder(sStartPath)
SearchFile = FindFile(sFileName, oFld)
End Function
Private Function FindFile(sFileName As String, oFld As Folder)
Dim oSubFld As Folder
Dim l As Long
On Error Resume Next
Debug.Print oFld.Path & "\" & sFileName
If oFSO.FileExists(oFld.Path & "\" & sFileName) Then
FindFile = oFld.Path & "\" & sFileName
MsgBox oFld.Path & sFileName
Exit Function
End If
For Each oSubFld In oFld.SubFolders
FindFile = FindFile(sFileName, oSubFld)
Next
If Err.Number <> 0 Then
If Err.Number = 70 Then ' wenn Zugriffverweigert dann...
Resume Next
End If
End If
End Function
----------------------------------------------
Tschau Bernhard
Betreff |
Von |
Datum |
|
|
G.
Guest
|
20.02.2004 10:38 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!