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.