C++ (Qt)
QStringList fl( QDir( dir ).entryList( QDir::Files ).filter( fname, Qt::CaseInsensitive ) );
QString fixed( fl.isEmpty() ? QString() : fl.first() );
Ежели поддиректории в пути тоже испорчены, то нужно также прогнаться и по ним.
А разве под виндой регистр имеет значение?