C++ QT C++;删除带有*(名称包含)的文件

C++ QT C++;删除带有*(名称包含)的文件,c++,qt,qt5,C++,Qt,Qt5,如果我在dirtest.txt、test2.txt、test3.txt中有一些文件,我可以使用cmd命令删除它们 del test*.txt 如何使用QT C++而不使用system() 我试过了 QFile(“test*.txt”).remove() 但它不起作用。主要任务是过滤文件,以便我们可以将QDir与nameFilter一起使用,如下所示: QDir dir("/path/of/directory", {"test*.txt"}); for(const QString & fi

如果我在dir
test.txt、test2.txt、test3.txt中有一些文件,我可以使用cmd命令删除它们

del test*.txt

如何使用
QT C++
而不使用
system()

我试过了

QFile(“test*.txt”).remove()


但它不起作用。

主要任务是过滤文件,以便我们可以将
QDir
nameFilter
一起使用,如下所示:

QDir dir("/path/of/directory", {"test*.txt"});
for(const QString & filename: dir.entryList()){
    dir.remove(filename);
}
或使用QDirIterator:

QDirIterator it("/path/of/directory", {"test*.txt"});

while (it.hasNext())
    QFile(it.next()).remove();
    //QDir().remove(it.next());

您需要使用Qt中实际支持通配符的东西。快速搜索发现如何使用通配符迭代目录。这使用了
QDirIterator
,我知道这一点,但我需要按照我的解释做一些更小的事情。很奇怪,你接受了使用
QDirIterator
的答案,尽管你已经知道了。这就是示例的重点,演示如何使用通配符遍历目录。唯一的区别是,您希望删除在通配符搜索中找到的文件,而不仅仅是显示名称。我正在寻找最小的代码,因此我使用了
QDir
,因为
QDirIterator
需要设置变量(不能将其放在相同的
foreach
循环中),谢谢你的建议谢谢我用这些代码创建了一个函数让它更简单