Jeg er stadig rimelig ny i C++ og jeg bruger borland c++ builder.
Jeg vil gerne lave en et mikro program (for øvelsens skyld) der kan kopierer en fil og vise hastighed og en statusbar for overførslen. Hertil har jeg nogle teorier om hvordan det skal foregå. f.eks. Opretter jeg de 2 file handles på en eller anden måde og bruger en løkke til at flytte f.eks. 64KB af gangen og en gang i sekundet tjekker jeg så hvor mange 64KB blokke der er flyttet og får dermed KB/s og statusbaren bliver en simpel overført nu/total filstørrelse til procent beregning.
Mit spørgsmål går så på. hvad er den smarteste metode til at kopierer filen på en måde så jeg faktisk kan aflæse hvor meget data der er flyttet.
Ok... umiddelbart hælder jeg til den nederste af de metoder du beskriver. men det jeg fiskede efter var sådan set en mere konkret beskrivelse af hvordan løkken der overfører f.eks. 64 KB af gangen skulle se ud :-)
Du kan jo bruge den gamle måde med en callback function (utestet fra 'toppen af mit hovede): void DoCopy ( const char *fnm1, const char *fnm2, (void) (*fnCallback)(int) );
BOOL CopyFileEx( LPCWSTR lpExistingFileName, // pointer to name of an existing file LPCWSTR lpNewFileName, // pointer to filename to copy to LPPROGRESS_ROUTINE lpProgressRoutine, // pointer to the callback function LPVOID lpData, // to be passed to the callback function LPBOOL pbCancel, // flag that can be used to cancel the operation DWORD dwCopyFlags // flags that specify how the file is copied );
så er det jo godt at du har lagt et fyldestgørende svar som han kan bruge zapzap :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.