2013-03-21 13 views
10

setNameFilters, çalışmıyor, ya da belki bu Qt bir hata ise:QDir.setNameFiltre yalnızca belirli uzantılara sahip dosyaları nasıl gösterir? Ben beklediğiniz gibi ben yanlış kullanıyorsam kimse açıklayabilir eğer öyleyse

QDir export_folder("C:\path"); 
QStringList fileList = export_folder.setNameFilters(QStringList()<<"*.exe"); 
:

İşte

benim kod örneği olduğunu işleme fileList Ben fileList sadece .exe dEĞİL .exe uzantılı dosyaları dahil beklenir Dize "test.exe1"

* içeriyor sonra

.

Eğer .exe'den daha uzun dosya uzantıları istiyorsam, filtrem olarak "*.exe*" ürününü koymayı beklerdim.

Birisi açıklığa kavuşmanıza yardımcı olabilir mi, yoksa dosya listemi gerçekten elimden sonra işlemek zorunda mıyım?

cevap

13

Yeni başlayanlar için, setNameFilters QStringList döndürmez, hiçbir şey döndürmez. Kod aşağıdaki gibi görünmelidir: beklendiği gibi

QDir export_folder("C:\\path"); 
export_folder.setNameFilters(QStringList()<<"*.exe"); 
QStringList fileList = export_folder.entryList(); 

Filtreleme işleri Qt 5.0.1 ile Linux ("exe2" ile biten dosyaları dönen değil).

+0

Hem .mp3 hem de .wav değerini göstermek istiyorsam nasıl yapmalı? Teşekkürler – Casper

2

Ayrıca, birden fazla türde uzantıya sahip dosyaları göstermek istiyorsanız, aşağıdakileri yapabilirsiniz.

export_folder.setNameFilters(QStringList() << "*.exe" << "*.pdf" << "*.docx" << "*.jpg"); 
İlgili konular