2013-03-21 2 views
10

setNameFilters가 작동하지 않는, 또는 어쩌면이 Qt는 버그가있는 경우 :QDir.setNameFilter 특정 확장명의 파일 만 표시하는 방법은 무엇입니까? 내가 기대하는 것처럼 내가 잘못을 사용하고 있다면 누구든지 설명 할 수 그래서 만약

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

여기

내 코드 샘플입니다

처리 후 fileList 문자열에 "test.exe1"이 포함되어 있습니다.

확장자가 .exe NOT .exe * 인 파일 만 fileList에 포함될 것으로 예상됩니다.

.exe보다 긴 파일 확장명을 원하면 "*.exe*"을 필자의 필터로 넣어야합니다.

누군가가 명확히하는 데 도움이 될 수 있습니까, 아니면 사실 내 fileList를 수동으로 처리해야합니까?

답변

13

우선 setNameFilters은 QStringList를 반환하지 않으므로 아무 것도 반환하지 않습니다. 귀하의 코드는 다음과 같아야합니다 예상대로

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

필터링 작동 Qt는 5.0.1와 리눅스 ("exe2"로 끝나는 파일을 반환하지 않습니다).

+0

.mp3과 .wav를 모두 표시하려면 어떻게해야합니까? 감사 – Casper

2

또한 확장명이 두 가지 이상인 파일을 표시하려면 다음과 같이 할 수 있습니다.

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