2012-05-11 8 views
5

Sto cercando di copiare un file da una posizione a un'altra (in un dispositivo) utilizzando C++/QtWill QFile :: copy create crea una copia del file o sposta il contenuto da un file all'altro?

Ho provato QFile :: copy ("path1/file", "path2");

Voglio copiare il file in path1 in path2. path2 non ha il file.

Voglio solo sapere se questo è il modo giusto perché il codice sopra non sembra funzionare.

Inoltre, dovrei aprire un file prima di provare a copiare? Ho bisogno di aiuto!

+1

Definire "non funziona". –

+0

Inoltre, hai verificato nei documenti che il tuo piano per l'utilizzo di questa funzione è supportato? http://doc.trolltech.com/4.7/qfile.html#copy –

risposta

10

Se si desidera copiare path1/file in path2 con lo stesso nome del file, si vorrà fare:

QFile::copy("path1/file", "path2/file"); 

Copy consente di cambiare il nome del file. Esempio:

QFile::copy("path1/file1", "path1/file2"); 

Ecco perché è necessario includere il nome del file entrambe le volte. Inoltre, non è necessario aprire prima il file. E per rispondere alla domanda del titolo, copia il file. QFile::rename() sposta il contenuto.

+0

Grazie! Ho ancora una domanda. Questa copia di Qfile restituirebbe false nel caso in cui il file esista già nel percorso di destinazione. Voglio copiare il file la prima volta e ogni volta che viene modificato il contenuto del file sorgente. Nel secondo caso devo andare per QFile rename()? – user1065969

+1

No. Sia la copia che la rinomina avranno esito negativo se il file esiste già. Devi prima cancellare il file di destinazione. –

+1

Può essere usato per copiare un ** file di risorse ** su un percorso? Ad esempio, è 'QFile :: copy (":/default.jpg "," data.jpg ");' possibile? –