setNameFiltersは私が期待するように機能していないので、誰かが私がそれを間違って使用しているかどうか、またはおそらくこれがQtのバグであるかどうかを説明できる場合:
これが私のコードサンプルです:
QDir export_folder("C:\path");
QStringList fileList = export_folder.setNameFilters(QStringList()<<"*.exe");
fileListの処理後、文字列「test.exe1」が含まれます
FileListには、拡張子が.exe *ではなく.exeのファイルのみが含まれると思います。
.exeより長いファイル拡張子が必要な場合は、フィルターとして"*.exe*"
を入力する必要があります。
誰かが明確にするのを手伝ってもらえますか、それとも事後に手動でfileListを処理する必要がありますか?
手始めに、setNameFilters
はQStringList
を返しません、それは何も返しません。コードは次のようになります。
QDir export_folder("C:\\path");
export_folder.setNameFilters(QStringList()<<"*.exe");
QStringList fileList = export_folder.entryList();
Qt 5.0.1を使用するLinuxでは、フィルタリングは期待どおりに機能します(「exe2」で終わるファイルは返されません)。
また、複数の種類の拡張子を持つファイルを表示したい場合は、次のようにすることができます。
export_folder.setNameFilters( QStringList() << "*.exe" << "*.pdf" << "*.docx" << "*.jpg" );