Seite 1 von 1

[gelöst] [Qt4] Dateien verschieben

Verfasst: 4. November 2005 17:05
von Esleborn
hi,
ich hab ein relativ simples Problem... ich will per Qt (OS-unabhängig) Dateien verschieben und umbennen. Für zweiteres hab ich eine Funktion in QFile gefunden aber fürs verschieben nciht, hat einer ne IDee? (ich will keinen system aufruf durchführen)

Elgrimm Esleborn

Verfasst: 6. November 2005 15:40
von m.trix
bool QFile::remove ()

Damit bekommst es weg. Davor halt einfach in ein QByteArray schmeissen und woanders ablegen. Wär zumindest ein Versuch.

Verfasst: 6. November 2005 18:01
von Esleborn
tsja es ist aber etwas anderes eine Datei zu kopieren und das Orginal zu löschen als zu verschieben. (à la system ("move x y")

Verfasst: 6. November 2005 20:17
von m.trix
Hmm, klar ist das von der Vorgehensweise etwas anderes. Aber ich kann doch, rein vom Prinzip, die Datei auch gleich neu erstellen, und die alte löschen. Oder gibt's da Gründe, das nicht zu tun?

Verfasst: 6. November 2005 20:24
von Esleborn
ja: 25 GB große Dateien...

Verfasst: 6. November 2005 20:31
von m.trix
Oh....Das seh ich dann jetz doch ein.

Ok, und wenn du einfach den Pfad der Datei bis zum letzten '.../name.exe' veränderst? Blöder Gedanke, aber würd das gehen?

Verfasst: 6. November 2005 22:01
von Esleborn
kapier ich nicht...
einfach QFile::rename oder so geht nicht, wenn du das meintest...

Verfasst: 7. November 2005 06:33
von Christian81
Esleborn hat geschrieben:kapier ich nicht...
einfach QFile::rename oder so geht nicht, wenn du das meintest...
Zmindest unter Windows sollte rename() funktionieren da dort die WinAPI-Funktion MoveFile aufgerufen wird...

Verfasst: 7. November 2005 22:49
von Esleborn
stimmt, hab gerade festgestellt, dass der Fehler bei mir in einem falsch deklarierten Pfad lag :oops:... selbstverständlich verschiebt QFile::move unter Windows und Linux die Dateien

Verfasst: 29. Oktober 2006 17:45
von Locutus
Christian81 hat geschrieben: Zmindest unter Windows sollte rename() funktionieren da dort die WinAPI-Funktion MoveFile aufgerufen wird...
Nur mal eine kleine Zwischenfrage: Wie ich gerade gemerkt habe, muß man auch bei Verzeichnissen zwei Backslashs einfügen damit es funktioniert.
Finde ich ein bißchen gewöhnungsbedürftig. Gibt's dafür eine Funktion, die das automatisch umwandelt oder muß man das per "Hand" machen?

Verfasst: 29. Oktober 2006 18:16
von ChMaster
schau mal hier QDir::separator(); nach

Verfasst: 29. Oktober 2006 22:19
von Locutus
Okay danke, gucke ich mir morgen mal an. Unter Linux braucht man so was angeblich nicht machen müssen :)