Često ste u situaciji da znate naziv traženog fajla, ali ne znate u kom folderu se nalazi. Zato ćemo vam predstaviti kompaktnu rutinu za pronalaženje "izgubljenih" fajlova, koju možete dodati gotovo svakoj vašoj aplikaciji. Korisnik tj. vi će trebati samo da upišete naziv fajla u dijalog prozor, i dobićete adekvatan odgovor (celu putanju do fajla). U ovoj rutini pozivamo funkciju iz biblioteke "IMAGEHLP.DLL" - i pretražujemo sve podfoldere date putanje, tražeći fajl određenog naziva. Funkcija će vratiti celokupnu putanju do vašeg fajla. Za korišćenje ove funkcije u vašoj aplikaciji, pozovite samo funkciju "PronadjiFajl", sa prosleđenim korenom i nazivom fajla. Funkcija će vam vratiti kompletnu putanju - ili nula-string (prazan string) ako fajl nije pronađen. Evo i programskog koda same funkcije:
Declare Function SearchTreeForFile Lib "IMAGEHLP.DLL" _
(ByVal lpRootPath As String, _
ByVal lpInputName As String, _
ByVal lpOutputName As String) As Long
Public Const MAX_PATH = 260
Public Function PronadjiFajl(Koren As String, _
NazivFajla As String) As String
Dim lNullPos As Long
Dim lResult As Long
Dim sBuffer As String
On Error GoTo PronadjiFajl_Error
sBuffer = Space(MAX_PATH * 2)
lResult = SearchTreeForFile(Koren, NazivFajla, sBuffer)
If lResult Then
lNullPos = InStr(sBuffer, vbNullChar)
If Not lNullPos Then
sBuffer = Left(sBuffer, lNullPos - 1)
End If
PronadjiFajl = sBuffer
Else
PronadjiFajl = vbNullString
End If
Exit Function
PronadjiFajl_Error:
PronadjiFajl = vbNullString
End Function
A evo kako na najjednostavniji način možete iskoristiti funkciju "PronadjiFajl" - pozivanjem preko Msgbox-a:
MsgBox PronadjiFajl("c:\", "Edit.com")
Dobićete rezultat kao na slici.