onko olemassa mitään sellasta käskyä, että voidaan kopioida esim. tekstitiedoston kansiosta toiseen.
Edit: C++
Se onnistuu esimerkiksi avaamalla molemmat tiedostot ja lukemalla toisesta ja kirjoittamalla toiseen niin kauan kuin tavaraa riittää. Tässäpä vielä tarkoitukseen virheenkäsittelyineen kaikkineen kelpo funktio, joka palauttaa totuusarvon riippuen kopioinnin onnistumisesta.
function Kopioi(Lahde, Kohde: String): Boolean; const PalanKoko = 1048576; var Alkufile, Loppufile: File; Kunnossa: Boolean; Luettu, Kirjoitettu: Integer; Puskuri: PByte; begin Kunnossa := True; try Assign(Alkufile, Lahde); Reset(Alkufile, 1); Assign(Loppufile, Kohde); Rewrite(Loppufile, 1); GetMem(Puskuri, PalanKoko); while not Eof(Alkufile) do begin BlockRead(Alkufile, Puskuri^, PalanKoko, Luettu); BlockWrite(Loppufile, Puskuri^, Luettu, Kirjoitettu); if Kirjoitettu <> Luettu then begin Kunnossa := False; Break end end except Kunnossa := False end; try Close(Alkufile); Close(Loppufile); FreeMem(Puskuri) except Kunnossa := False end; Kopioi := Kunnossa end;
Edit: Jaa, sen kielen olisi voinut heti kertoa. ^^ No mutta sovellapa tuosta.
Funktio rename sopii tehtävään (tiedoston nimi säilyy, mutta hakemisto muuttuu).
#include <stdio.h> int main(void) { rename("c:\\vanha\\testi.txt", "c:\\uusi\\testi.txt"); return 0; }
Tämä esimerkki oli C:lle, mutta vastaava funktio on varmasti myös C++:ssa.
C++-ohjelmissa toisinaan pitää tyytyä C:n standardikirjastoon, syystä tai toisesta kaikkia sen ominaisuuksia ei ole uudestaan kerjoitettu. Valitettavati rename ei kuitenkaan kopioi tiedostoa vaan siirtää sen, kopiointiin ei ole valmista funktiota.
juu kiitoksia paljon!!
Jos käyttiksenä on winukka, käytä tätä:
CopyFile
The CopyFile function copies an existing file to a new file.
BOOL CopyFile( LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName, BOOL bFailIfExists );
Ja linkki:
http://msdn.microsoft.com/library/default.asp?
Aihe on jo aika vanha, joten et voi enää vastata siihen.