Russian Qt Forum

Qt => Общие вопросы => Тема начата: Fess от Май 18, 2011, 14:26



Название: исправить caSE seNSITivE patH
Отправлено: Fess от Май 18, 2011, 14:26
Есть строка с путем к файлу, считанная, скажем из реестра, куда она была записана сторонней программой.
Там она находится в нижнем регистре, но реальный файл может иметь заглавные символы, например file.EXT
Нужно исправить считанную строку, чтобы она соответствовала пути к файлу.
Но никак не нахожу подходящего решения. QFileInfo не помогает..


Название: Re: исправить caSE seNSITivE patH
Отправлено: GreatSnake от Май 18, 2011, 14:38
Код
C++ (Qt)
QStringList fl( QDir( dir ).entryList( QDir::Files ).filter( fname, Qt::CaseInsensitive ) );
QString fixed( fl.isEmpty() ? QString() : fl.first() );

Ежели поддиректории в пути тоже испорчены, то нужно также прогнаться и по ним.

А разве под виндой регистр имеет значение?


Название: Re: исправить caSE seNSITivE patH
Отправлено: Fess от Май 18, 2011, 15:10
Спасибо! то что нужно.


Название: Re: исправить caSE seNSITivE patH
Отправлено: ритт от Май 18, 2011, 20:12
А разве под виндой регистр имеет значение?
нтфс поддерживает регистрозависимые имена, но из-за совместимости со старыми вендами фича не используется


Название: Re: исправить caSE seNSITivE patH
Отправлено: Fess от Май 19, 2011, 09:12
Регистр имеет значение для той либы, которой я в итоге все это скармливаю..