2013-12-13 5 views
2

QFile 정적 함수 지정된 파일을 삭제QDir :: rmdir이 정적이지 않은 이유는 무엇입니까?

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

있다. 이것은 편리합니다 : 우리는 파일에 대한 경로를 가지고 있으며 그것을 제거하기 위해 명령을 사용합니다. 그러나 QDir 만이 하나를 같은 명령이 없습니다 : 따라서 비 정적이며

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

객체를 요구한다. 그래서 나는이 구역질

QDir().rmdir(path)

같은 추악한 일을하도록 강요하고있다. 내가 놓친 게 있니?

+3

QFile (복사, 이름 바꾸기, 제거)에서 유사한 작업을 수행하는 경우 함수가 false를 반환하는 경우 오류 세부 정보 (errorString())를 얻는 유일한 방법은 개체 만들기이므로 고려 대상 개체를 만듭니다 거기서 최고의 연습. QDir에 errorString()이 누락되었습니다. 슬프게도. 이상적으로 그것은 비록 추가 될 것입니다. –

+3

정적'QFile :: remove()'함수는'QDir'과 마찬가지로'QFile' 객체를 만듭니다 : ['QFile (fileName) .remove();'] (https : // qt.gitorious.org/qt/qt/source/57756e72adf2081137b97f0e689dd16c770d10b1:src/corelib/io/qfile.cpp#L674). – thuga

답변

0

클래스 QDir을 파생시키고 정적 메서드를 추가 할 수 있습니다.

class MyQDir : public QDir { 
     // Define constructors/destructor 

     static bool remove (const QString & dirName) { 
      return QDir().rmdir(dirName); 
     } 
};