Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi FileCopy-Funktion optimieren (Buffer-Size) (https://www.delphipraxis.net/188665-filecopy-funktion-optimieren-buffer-size.html)

Neutral General 29. Mär 2016 08:14

AW: FileCopy-Funktion optimieren (Buffer-Size)
 
Zitat:

Zitat von Normalement (Beitrag 1333990)
Aber ich brauchte für ein Projekt einen eigenen Fortschrittsdialog. Sagen wir mal, einen etwas sprachfreudigeren und das überall gleich egal ob Windows 7, 8 oder 10 =)

Das kannst du mit CopyFileEx auch haben.
Wenn du trotzdem deinen Uraltcode weiterbenutzen willst probier halt bisschen am Buffer rum und guck was dabei raus kommt.

himitsu 29. Mär 2016 12:04

AW: FileCopy-Funktion optimieren (Buffer-Size)
 
Jupp, FileCopyEx + Callback :stupid:

Aber Achtung: Nicht nicht bei jedem Aufruf die GUI aktualisieren, da du so alles nur ausbremst (Windows ruft den Callback eventuell sehr schnell/oft auf), mit der langsamen GUI.
z.B. per GetTickCount nur, wenn mindestens 200-1000 Millisekunden vergangen sind, seit dem letzten Aktualisieren der GUI.

Und statische Bytegrößen zwischen dem Aktualisieren sind/waren eh schon immer quatsch, da sich das je System/Quelle/Ziel/RAM/Cache anders verhält.

mm1256 30. Mär 2016 07:24

AW: FileCopy-Funktion optimieren (Buffer-Size)
 
Ein weiterer Nachteil (und Vorteil einer eigenen Lösung) ist, dass sich FileCopyEx nicht auf allen OS-Versionen gleich verhält. Was die Callbacks anbelangt kann man deren Aufruf in einer eigenen Lösung schon vor dem Aufruf optimieren. Ein weiterer Nachteil der "CopyProgressRoutine" ist, dass grundsätzliche Informationen über den Status "Begin, Progress, Ende" fehlen. Das muss man sich selber zusammenrechnen. Insgesamt gesehen ist mir persönlich also meine eigene Copy-Routine sympatischer. Auch wenn sie vielleicht nicht ganz so schnell sein sollte wie FileCopyEx.

Sir Rufo 30. Mär 2016 09:13

AW: FileCopy-Funktion optimieren (Buffer-Size)
 
Die Lösung heisst hier:

Ein FileCopyService
Delphi-Quellcode:
ICopyFiles
.

Diesen Service kann man dann je nach Laune und OS implementieren - die Bedienung bleibt aber gleich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:05 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz