-1

您好我正在尝试遍历目录并删除扩展名为“~”的文件这是我的代码

    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));
        }
   }

我可以很好地列出文件,但不知道如何删除它们

4

2 回答 2

2

我认为您正在寻找QFile::remove()

它是 QFile 的静态成员,因此您可以像这样使用它:

QFile::remove(testName);
于 2013-12-29T02:58:48.757 回答
2

bool QFile::remove(const QString & fileName) [静态]

这是一个过载功能。

删除由给定文件名指定的文件。

成功则返回真;否则返回假。

所以,改变你的代码:

remove(QString( testName));

至:

if (!QFile::remove(testName))
    qDebug() << "Could not remove the file:" << testName;

请注意,您不需要明确地将 aQString强制转换为QString。那是多余的。

您也可以使用非静态成员方法,然后您甚至可以在删除不成功errorString()的情况下使用for实例获取错误字符串。QFile

如果您还想以递归方式删除具有所需~后缀的整个目录,则需要在这种情况下使用remove member 方法。QDir

于 2013-12-29T02:59:01.767 回答