2012-05-11 17 views
5

Próbuję skopiować plik z jednej lokalizacji do drugiej (w urządzeniu) przy użyciu C++/QtCzy QFile :: copy create utworzy kopię pliku lub przeniesie zawartość z jednego pliku do drugiego?

Próbowałem QFile :: copy ("ścieżka1/plik", "ścieżka2");

Chcę skopiować plik w ścieżce 1 do ścieżki2. ścieżka2 nie ma pliku.

Po prostu chcę wiedzieć, czy to jest właściwy sposób, ponieważ powyższy kod nie działa.

Czy powinienem otworzyć plik, zanim spróbuję go skopiować? Potrzebuję pomocy!

+1

Definiuj "nie działa". –

+0

Czy sprawdziłeś również w dokumentach, czy Twój plan używania tej funkcji jest obsługiwany? http://doc.trolltech.com/4.7/qfile.html#copy –

Odpowiedz

10

Jeśli chcesz skopiować path1/file do path2 o tej samej nazwie pliku, będziemy chcieli zrobić:

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

Copy pozwala zmienić nazwę pliku. Przykład:

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

Dlatego trzeba zawierać nazwę pliku za każdym razem. Ponadto nie trzeba najpierw otwierać pliku. Aby odpowiedzieć na tytułowe pytanie, kopiuje plik. QFile::rename() przenosi zawartość.

+0

Dziękujemy! Mam jeszcze jedno pytanie. Ta kopia Qfile zwróci false w przypadku, gdy plik już istnieje w lokalizacji docelowej. Chcę najpierw skopiować ten plik i za każdym razem, gdy modyfikowana jest zawartość pliku źródłowego. W drugim przypadku muszę przejść do zmiany nazwy pliku QFile()? – user1065969

+1

Nie. Zarówno kopiowanie, jak i zmiana nazwy nie powiedzie się, jeśli plik już istnieje. Najpierw musisz usunąć plik docelowy. –

+1

Czy można tego użyć do skopiowania ** pliku zasobów ** do pewnej ścieżki? Na przykład, jest 'QFile :: copy (":/default.jpg "," data.jpg ");' możliwe? –

Powiązane problemy