Russian Qt Forum
Ноябрь 25, 2024, 04:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: исправить caSE seNSITivE patH  (Прочитано 2566 раз)
Fess
Гость
« : Май 18, 2011, 14:26 »

Есть строка с путем к файлу, считанная, скажем из реестра, куда она была записана сторонней программой.
Там она находится в нижнем регистре, но реальный файл может иметь заглавные символы, например file.EXT
Нужно исправить считанную строку, чтобы она соответствовала пути к файлу.
Но никак не нахожу подходящего решения. QFileInfo не помогает..
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Май 18, 2011, 14:38 »

Код
C++ (Qt)
QStringList fl( QDir( dir ).entryList( QDir::Files ).filter( fname, Qt::CaseInsensitive ) );
QString fixed( fl.isEmpty() ? QString() : fl.first() );

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

А разве под виндой регистр имеет значение?
« Последнее редактирование: Май 18, 2011, 14:43 от GreatSnake » Записан

Qt 5.11/4.8.7 (X11/Win)
Fess
Гость
« Ответ #2 : Май 18, 2011, 15:10 »

Спасибо! то что нужно.
Записан
ритт
Гость
« Ответ #3 : Май 18, 2011, 20:12 »

А разве под виндой регистр имеет значение?
нтфс поддерживает регистрозависимые имена, но из-за совместимости со старыми вендами фича не используется
Записан
Fess
Гость
« Ответ #4 : Май 19, 2011, 09:12 »

Регистр имеет значение для той либы, которой я в итоге все это скармливаю..
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.142 секунд. Запросов: 23.