Kopier filer

Tags:    delphi

Hvordan kopier man en fil(er), når der også skal være en progressbar og en nedtælling tid på. (Den skal også kunne kopier lange fil navne) ?

Med venlig hilsen Frede_Manden



2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Brug denne kode til at kopiere filer :<pre>CopyFile(Fil, destination, false);</pre>
Det sdiste false afgør om kopiering skal annulleres hvis en fil med dette navn allerede findes. Det med progressbar kan du optælle mængden af megabytes på de filer som skal kopieres, og dernæst tildele den værdi til maxvalue på progressbar. Dernæst kan du sætte en timer til at optælle det antal af megabytes som er overført og tildele denne værdi til position på progressbar.

Mark H. Jensen
mouzulu@hotmai.com
www.freewebs.com/mhj/



...............Dernæst kan du sætte en timer til at optælle det antal af megabytes som er overført og tildele denne værdi til position på progressbar.

Mark H. Jensen
mouzulu@hotmai.com
www.freewebs.com/mhj/


Den går ikke, hvad hvis systemmet blev optaget halvvejs i kopieringen, tids-baren(!) ville stadig bevæge sig (hvis nok resurser). Det er helt i skoven, undskyld jeg siger det.

Man skal åbne filen, finde dens størelse, bruge en buffer hvor der læses ind i og skrives ud fra, størelsen fx 8 kbytes ell. 64k måske, filens størelse divideret med bufferens størelse er progressbarens-vokse-størelse per gennemløb af et loop hvor man som sagt læser en bid, skriver den og begynder forfra, bemærk sidste bid vil næppe være på nettop bufferens størelse.

Jeg tror at blockread(filhandle,distination,ønsket size,faktisk-size) gør det meste. Plus blockwrite
Assign(fh,<navn>;), reset(fh) på input filen, assign(fho,<navn>;), rewrite(fho) på output-filen.

Håber du kan bruge hjælpen.



t