Wie mit QT eine Datei löschen?
-
Ich versuche in einem Temp-Verzeichnis eine Datei zu löschen:
QFile::remove("datei.ext");
Es kommt jedesmal "Zugriff verweigert" raus, aber im Explorer kann ich die Datei ganz normal löschen. Was ist da los?
-
nur Dateiname wird wohl nicht reichen, Pfad wird wohl auch gebraucht.
Weiss ich aber nicht genau.
-
Der Pfad steht natürlich drinnen, das war nur ein Beispiel für Syntax.
-
Poste den fehlerhaften Code.
Ein "Beispiel" für den Fehler hilft, denn könntest Du ein Beispiel für den Fehler angeben, könntest Du ihn auch beheben.
-
Da fehlt ein "nicht".
Ein "Beispiel" für den Fehler hilft nicht.
Denn könntest Du ein Beispiel angeben,könntest Du den Fehler auch beheben.
-
Hab ich doch schon. Also nochmal:
QFile::remove("C:\\Users\\User\\AppData\\Local\\Temp\\mydir\\myfile.txt");
-
QFile Doku lesen:
QFile expects the file separator to be '/' regardless of operating system. The use of other separators (e.g., '\') is not supported.
-
Das spielt keine Rolle, es wird intern konvertiert. Slashes und Backslashes funktionieren unter Windows gleichermaßen.
-
Nun, ich habs inzwischen per WinAPI/Posix selber gekapselt. Damit gehts jeweils. Keine Ahnung was Qt da nicht passt. Wenn jemand trotzdem noch ne Idee hat lese ich sie gerne.
-
Ich habe keine Idee aber ich habe das ganze kurz getestet und bei mir funktionierte es.
Test programm:
#include <QCoreApplication> #include <QFile> #include <QtDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); bool b = QFile::remove("C:\\Users\\User\\Documents\\New Text Document.txt"); qDebug()<<"remove result: "<<b; return a.exec(); }