2014-04-24 8 views
6

Mit einem seltsamen Problem beim Versuch, eine Datei zu entfernen, die ich gerade mit Qt heruntergeladen habe.QFile :: entfernen nicht Datei entfernen?

Mein Code:

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

Datei wird nicht entfernt zu werden.

Irgendwelche Ideen, was könnte falsch sein?

+0

Überprüfen Sie immer den Rückgabewert. Ursache könnte eine Erlaubnis oder Sperrung sein, indem sie benutzt wird oder einen falschen Pfad hat. – user2672165

+0

Wie lautet der Rückgabewert des Remove-Aufrufs? Siehe 'if (! RmFile-> remove()) qDebug() << rmFile.errorString();' Auch in diesem speziellen Fall ist die Instanz ein Overkill. Sie können die statische Methode direkt aufrufen. – lpapp

+1

Wenn Sie unter Mac sind, zeigt "/path/to/app/Application.app" auf ein Verzeichnis und nicht auf die Datei, nein? – vahancho

Antwort

7

Wenn es ein Verzeichnis ist, wie es zu sein scheint, möchten Sie die folgende API mit Qt 5 verwenden:

bool QDir::removeRecursively()

zu QFile gegenüber. Daher würden Sie etwas wie folgt schreiben:

Beachten Sie, dass ich nicht persönlich ein Heap-Objekt nur dafür verwenden würde. Stack-Objekt würde in diesem einfachen Fall ausreichen.

+0

Super! Danke und akzeptiere so schnell wie möglich :) – user3490755