2010-09-05 21 views
7

Küçük ama kaşıntı problemim var. Qt'deki bir Windows yolu için doğru durumu nasıl alırım?Yolun doğru durumunu nasıl alırım?

Bir c:\documents and settings\wolfgang\documentsQString str numaralı belgede kayıtlı bir yol var diyelim ve doğru durumu öğrenmek istiyorum, burada C:\Document and Settings\Wolfgang\Documents. QDir(str).absolutePath() bana doğru durumda yol almaz.

Herhangi bir öneri, çünkü başka ne deneyebilirim?

Zaman ayırdığınız için teşekkür ederiz!

cevap

4

Bunu yapmanın basit bir yolu yoktur, ancak bir QDir.entryList yapmayı deneyebilir ve ardından sonuçlarda büyük/küçük harf duyarlı olmayan bir arama yapabilirsiniz. Bu size doğru dosya adını sağlayacaktır. Bu sonuç için absolutePath'u almanız gerekir.

Bu, yol/dosya adı için korunan durumu size vermelidir.

+0

Güncelleme,

Umarım yardımcı olur .. diğer işlemler de değinilen dosya hakkında yararlı bilgiler elde edebilir QFileInfo edinilebilir biraz dolambaçlı vardır, ama hiç hoş basit yolu var maalesef bunu yap. - Davaya duyarsız bir dosya sisteminde neden korunan bir yol/dosya adına ihtiyacınız olduğunu merak etmeme yardımcı olamıyorum? – ocodo

+0

Sadece kullanıcıya giden yolu sunmak içindir. Yollarının durumlarını düzeltmek için kullanılırlar. – WolfgangA

+0

Yol ilk etapta tüm küçük harfleri nasıl bitirdi? Bunu düzeltmeyi tercih ederim. –

0

Sen mutlak dosya yolu döndürür bunun için QFileInfo ve işlevini

QString QFileInfo::absoluteFilePath() const kullanabilirsiniz.

Örn:

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

diğer avantajı yourPath olabilir, yani bir QFile ya QString böylece şu anda yaşıyorsanız saplı doğrudan kullanabileceği. Bunların yanında, ..

+0

Üzgünüm, Windows üzerinde çalışmıyor. QFileInfo ("c:/windows") absoluteFilePath() 'C:/WINDOWS' yerine 'C:/windows' verir. – WolfgangA

İlgili konular