使用Qt过滤QFileInfoList文件

Sha*_*fun 7 c++ qt qt4

我有一个QFileInfoList(列表),其中包含有关目录及其文件的信息

QFileInfoList list = directory.entryInfoList();
Run Code Online (Sandbox Code Playgroud)

如何应用过滤器来删除除图像文件(jpg,gif,png等)之外的所有内容?

这是一个简单的foreach循环,只删除不是文件的所有内容

foreach (QFileInfo f, list){
        if (!f.isFile()){
        list.removeOne(f);
        }
Run Code Online (Sandbox Code Playgroud)

如何应用过滤器来删除除图像文件(jpg,gif,png等)之外的所有内容?

Sco*_*ott 17

QDir :: entryInfoList()采用名称过滤器,如果您可以通过扩展来确定图像:

QStringList nameFilter;
nameFilter << "*.png" << "*.jpg" << "*.gif";
QFileInfoList list = directory.entryInfoList( nameFilter, QDir::Files );
Run Code Online (Sandbox Code Playgroud)