2014-04-24 10 views
6

Qt로 방금 다운로드 한 파일을 제거하려고 할 때 이상한 문제가 있습니다.QFile :: 파일을 지우지 않고 제거 하시겠습니까?

내 코드 :

QString location = "/path/to/app/Application.app"; 
QFile *rmFile = new QFile(location); 
rmFile->remove(); 

파일이 제거되지 않습니다.

어떤 아이디어가 잘못되었을 수 있습니까? 가 될 것으로 보인다대로 디렉토리 일 경우

+0

항상 반환 값을 확인하십시오. 원인은 사용 중이거나 잘못된 경로로 인해 권한 또는 잠금이 될 수 있습니다. – user2672165

+0

제거 호출의 반환 값은 무엇입니까? 'if (! rmFile-> remove()) qDebug() << rmFile.errorString();'또한이 특별한 경우 인스턴스는 과잉이다. 정적 메서드를 직접 호출 할 수 있습니다. – lpapp

+1

Mac 사용자 인 경우 "/path/to/app/Application.app"는 파일이 아니라 디렉토리를 가리 킵니다. – vahancho

답변

7

, 당신은 Qt를 5로 다음과 같은 API를 사용하려면 :

bool QDir::removeRecursively()

QFile에 반대. 따라서 다음과 같은 내용을 작성하게됩니다.

QString location = "/path/to/app/Application.app"; 
QDir *rmDir = new QDir(location); 
rmDir->removeRecursively(); 

여기서는 힙 개체를 개인적으로 사용하지 않습니다. 이 간단한 경우 스택 객체로 충분합니다.

+0

굉장! 빨리, 수락 감사합니다 :) – user3490755