- Offizieller Beitrag
Hi,
bin auf eine weitere Methode zum Durchsuchen von Ordnern/Unterordnern gestoßen. Hat selbst bei einer Suche im Root mit Datei in 4 Ebenen Tiefe nur 30 s gebraucht.
Local $ret = _SearchTreeForFile('C:\', 'qmark.acs')
If $ret Then
MsgBox(0, 'Gefunden', $ret)
Else
MsgBox(0, 'Nicht Gefunden', 'Datei nicht im Suchpfad')
EndIf
;===============================================================================
; Function Name: _SearchTreeForFile($sRootPath, $sFileName)
; Description:: Dateisuche in einem Pfad und allen Unterpfaden
; Parameter(s): $sRootPath Startpfad der Suche
; $sFileName Name der gesuchten Datei
; Return Value(s): gefunden Pfad der gesuchten Datei
; n. gefunden 0
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;===============================================================================
Func _SearchTreeForFile($sRootPath, $sFileName)
If StringRight($sRootPath, 1) <> '\' Then $sRootPath &= '\'
Local $sOutputPathBuffer = ''
Local $aRet = DllCall("imagehlp", 'long', 'SearchTreeForFile', 'str', _
$sRootPath, 'str', $sFileName, 'str', $sOutputPathBuffer)
If $aRet[0] = 1 Then
Return $aRet[3]
Else
Return 0
EndIf
EndFunc ;==>_SearchTreeForFile