[C++,Qt] löschen einer Datei

SuperSonik

Erfahrenes Mitglied
Hi,
ich habe ein Problem mit einer eigentlich recht einfachen Sache.
Ich würde gerne eine Datei löschen. (nicht lachen :( )
Ich benutze Qt 4.2.2 Open Source Version und teste unter Windows 2000.
Ich hab's auf zwei Arten versucht:

QFile datei("C:\\"+dateiname+".txt");
datei.remove();

oder

QFile *datei = new QFile("C:\\"+dateiname+".txt");
datei->remove();

Beides funktioniert jedoch nicht. Ich habe schon an falsche Berechtigungen gedacht,
aber ich arbeite als Admin und habe sämtliche Rechte an der Datei und der .exe.
Und die .exe läuft auch unter meinem Benutzer.
Hat jemand eine Idee? - Ich beginne schon an einen Bug zu glauben.
Gruß,
SuperSonik
 
Hi.

Was ist denn der Wert von dateiname?

Existiert die Datei überhaupt - also überprüfe den Wert von datei.exists().

Welcher Fehler wird zurückgegeben?
C++:
QFile datei(...);

if (!datei.remove()) {
  cerr << "fehler: " << datei.name() << " => " << datei.errorString() << endl;
}
Gruß
 
Hi,
der dateiname ist ein QString in dem im Moment "test" steht.
Ich bin mir aber sicher das die Datei existiert und ich sie auch korrekt finde.
Bevor ich die Datei löschen möchte habe ich schon einiges rein geschrieben und mittels
QFtp auf einen FTP-Server übertragen.
Das klappt auch alles. Eigentlich möchte ich die Datei jetzt "nur" noch lokal löschen. :)
Ach bevor, jetzt die Idee entsteht das der FTP-Transfer noch nicht abgeschlossen ist und ich die Datei deshalb nicht gelöscht bekomme.
Ich versuche das löschen erst, nachdem ich des
SIGNAL commandFinished für den Befehl close erhalten habe.

Gruß,

SuperSonik
 
Ok,
ich bin's nochmal. ;)
ich habe die Ausgabe von Dir soweit angepasst das es funktioniert:

Code:
if (!upload_datei->remove()) {
      cout << "fehler: " << upload_datei->fileName().toStdString() << " => " << upload_datei->errorString().toStdString() << endl;
     }

Ich erhalte die Ausgabe "No such file or directory".
Aber wie kann es sein, dass das Schreiben und Versenden klappt aber beim remove wird
die Datei nicht gefunden?
Gruß,

SuperSonik
 
Ok,
ich bin's nochmal. ;)
ich habe die Ausgabe von Dir soweit angepasst das es funktioniert:
Bei mir wurde der Code ohne jegliche Beanstandung so kompiliert wie ich ihn gepostet habe (Linux, GCC 4.0.2, QT 3.3.4).
Ich erhalte die Ausgabe "No such file or directory".
Aber wie kann es sein, dass das Schreiben und Versenden klappt aber beim remove wird
die Datei nicht gefunden?
Leider ist die Fehlermeldung nicht immer 100%ig richtig. Als ich eine Datei in einem schreibgeschützten Verzeichnis entfernen wollte, gab es auch die "Datei nicht gefunden"-Fehlermeldung.

Evtl. hast du doch nicht alle geöffneten QFile's freigegeben. Aber da mußt du schonmal mehr von deinem Code posten.

Gruß
 
Zurück