删除扩展名目录中的文件

时间:2013-12-29 02:55:25

标签: c++ qt qt4 qtcore qfile

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

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

我可以将文件列好,但无法弄清楚如何删除它们

2 个答案:

答案 0 :(得分:2)

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

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

QFile::remove(testName);

答案 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来处理此类情况。