Есть строка
end else _hi_OnEvent(_event_onOtherFiles,Dir + '\' + FindData.cFileName);
Но в ней Dir уже содержит концевой слеш, который добавляется выше по коду в этой строке:
if Dr[Length(Dr)] <> '\' then Dr := Dr + '\';
Следовательно, это
end else _hi_OnEvent(_event_onOtherFiles,Dir + '\' + FindData.cFileName);
заменяем на это:
end else _hi_OnEvent(_event_onOtherFiles,Dir + FindData.cFileName);
как и предложил Ex_ - и никаких проблем.