您好我正在尝试遍历目录并删除扩展名为“〜”的文件,这里是我的代码
QString path = "/home/brett/sweetback";
QDirIterator it(path, QDirIterator::Subdirectories);
while (it.hasNext()) {
//ui.textEdit->append(QString(it.next()));
QFileInfo Info(it.next());
//ui.textEdit->append(QString(Info.fileName()));
QString testName = QString(Info.fileName());
QString subString = testName.right(1);
if(subString == QString("~")){
//wnat to remove file here
ui.textEdit->append(QString(subString));
remove(QString( testName));
}
}
我可以将文件列好,但无法弄清楚如何删除它们
答案 0 :(得分:2)
答案 1 :(得分:2)
bool QFile::remove(const QString & fileName) [static]
这是一个重载功能。
删除由给定的fileName指定的文件。
如果成功则返回true;否则返回false。
所以,改变你的代码:
remove(QString( testName));
为:
if (!QFile::remove(testName))
qDebug() << "Could not remove the file:" << testName;
请注意,您无需明确地将QString
强制转换为QString
。这是多余的。
你也可以使用non-static member method,然后你甚至可以在删除失败时使用errorString()
QFile
实例来获取错误字符串。
如果您还希望以递归方式删除具有所需~
后缀的整个目录,则需要使用QDir
中的remove member method来处理此类情况。