为什么QDir::rmdir不是静态的

Why QDir::rmdir is not static?

本文关键字:静态 rmdir QDir 为什么      更新时间:2023-10-16

QFile具有静态函数

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

其删除指定的文件。这很方便:我们有一个文件的路径,我们使用一个命令来删除它。然而,QDir没有这样的命令,只有这个:

bool QDir::rmdir ( const QString & dirName ) const

其是非静态的并且因此需要对象。所以我不得不做一些丑陋的事情,比如

QDir().rmdir(path)

这太恶心了。我是不是错过了什么?

您可以派生类QDir并添加静态方法。

 class MyQDir : public QDir {
      // Define constructors/destructor
      static bool remove ( const QString & dirName ) {
            return QDir().rmdir(dirName);
      }
 };