Fix wrongly used CFile::Exists() for directories instead of CDirectory::Exists()

Cherrypicked from PR #5309.
Intended to fix problem with various VFS, including recently added Win32File.

Also, wont this be unnecessary expensive on system that don't have this file/directory distinction? A single call to Exists can already block for a *very* long time in case of timeout.