【问题标题】:Delete file in directory with extension删除带有扩展名的目录中的文件
【发布时间】:2013-12-29 02:55:24
【问题描述】:

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

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

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

【问题讨论】:

    标签: c++ qt qt4 qtcore qfile


    【解决方案1】:

    我想你在找QFile::remove()

    它是 QFile 的静态成员,所以你可以这样使用它:

    QFile::remove(testName);
    

    【讨论】:

      【解决方案2】:

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

      这是一个重载函数。

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

      如果成功则返回真;否则返回 false。

      所以,改变你的代码:

      remove(QString( testName));
      

      到:

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

      请注意,您不需要将 QString 显式转换为 QString。那是多余的。

      你也可以使用non-static member method,然后你甚至可以在删除不成功的情况下,对QFile实例使用errorString()得到错误字符串。

      如果您还想以递归方式删除具有所需~ 后缀的整个目录,则需要在QDir 中使用remove member method

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-11
        • 2021-12-28
        • 2023-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-31
        相关资源
        最近更新 更多