2010-09-05 14 views
7

Tengo un pequeño problema de picazón. ¿Cómo obtengo el caso correcto para una ruta de Windows en Qt?¿Cómo obtengo el caso correcto de una ruta?

Digamos que tengo una ruta c:\documents and settings\wolfgang\documents almacenada en un QString str y quiero saber el caso correcto, aquí C:\Document and Settings\Wolfgang\Documents. QDir(str).absolutePath() no me da la ruta con la caja correcta.

Alguna sugerencia, ya que no tengo ni idea de qué más podría probar?

¡Gracias por su tiempo!

Respuesta

4

No hay una manera simple de hacer esto, pero puede intentar hacer una QDir.entryList y luego hacer una búsqueda insensible a mayúsculas y minúsculas en los resultados. Esto le proporcionará el nombre de archivo correcto. Luego deberá obtener el absolutePath para ese resultado.

Esto debería darle el caso preservado para la ruta/nombre del archivo.

+0

Actualizado, un poco complicado, pero no hay manera simple agradable a haz esto desafortunadamente - No puedo evitar preguntarme por qué necesitas una ruta de acceso/nombre de archivo conservados en un sistema de archivos insensible a mayúsculas y minúsculas. – ocodo

+0

Es solo para presentarle la ruta al usuario. Se usan para corregir casos de sus caminos. – WolfgangA

+0

¿Cómo terminó la trayectoria en minúsculas en primer lugar? Prefiero arreglar eso. –

0

Puede utilizar QFileInfo para eso y la función

QString QFileInfo::absoluteFilePath() const devolverá la ruta de archivo absoluta.

por ejemplo:

QFileInfo yourFileInfo(yourPath); 
QString correctedCasePath = yourFileInfo.absoluteFilePath(); 

Otra ventaja es que, yourPath puede ser un QFile o QString para que pueda usarlo directamente con el mango Actualmente se están teniendo. Además de éstas, existen otras operaciones también están disponibles a través QFileInfo que puede obtener información útil sobre el archivo que se refiere ..

creo que sirve ..

+0

Lo sentimos, no funciona en Windows. QFileInfo ("c:/windows"). AbsoluteFilePath() da 'C:/windows' en lugar de 'C:/WINDOWS'. – WolfgangA

Cuestiones relacionadas