Ich habe zwar nur schnell drüber geschaut, aber diese zwei Funktionen sind mit Hilfe von RegExp 2 bis 3 mal schneller:
[autoit]Func _GetFileExtension($sPath)
Local $a = StringRegExp($sPath, '[^\*\?\<\>\|"]+\\[^\/\:\*\?\<\>\|\"\\]+\.([^\/\:\*\?\<\>\|\"\\\.]+)\\?\Z', 3)
If IsArray($a) Then Return $a[0] ; by Christoph54
EndFunc ;==>_GetFileExtension
Func _GetFileName($sPath)
Local $a = StringRegExp($sPath, '[^\*\?\<\>\|"]+\\([^\/\:\*\?\<\>\|\"\\]+)\\?\Z', 3)
If IsArray($a) Then Return $a[0] ; by Christoph54
EndFunc ;==>_GetFileName
(Ich weiß es sieht grauenvoll aus, aber das liegt daran, dass ich die Zeichen auf die beschränkt habe die auch in Dateinamen vorkommen dürfen. Und vielleicht liegt es auch ein bisschen daran, dass ich gerade erst mit StringRegExp anfange... )