AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Dateien performant mit Callback kopieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien performant mit Callback kopieren

Ein Thema von DieDolly · begonnen am 2. Aug 2018 · letzter Beitrag vom 3. Aug 2018
 
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#24

AW: Dateien performant mit Callback kopieren

  Alt 3. Aug 2018, 13:57
Zitat:
Ähm... vieles. Und die Sektorengröße kann man schließlich einfach ermitteln. Einfach mal in der DP suchen.
Finde dazu genau nichts.

Könnt ihr mir vielleicht ein Beispiel zeigen was ihr mit Hausmitteln meint? Damit meine ich kein simples CopyFile.
Sondern irgendwas mit einem CallBack, sodass ich immer auf dem Laufenden bin und den Kopiervorgang auch von Außen abbrechen kann.

Aktuell nutze ich alte Windowsmittel, die viele verfluchen. Ich sag nur Block-Methoden.
Da ich hier aber eine Schleife habe, kann ich wann immer ich möchte abbrechen.

Edit
mein Problem mit dem CopyFileEx-Callback ist, dass ich nicht weiß wie ich die kopierten Bytes hochzählen kann.
TInterlocked.Add(OverallBytesCopied, ....); // TotalFileSize, TotalBytesTransferred, StreamSize, StreamBytesTransferred ? Bei einer Datei könnte ich OverallBytesCopied := TotalBytesTransferred; schreiben. Aber bei mehreren geht das nicht denke ich.

Delphi-Quellcode:
procedure CopyCallBackTEST(TotalFileSize, TotalBytesTransferred, StreamSize, StreamBytesTransferred: Int64; dwStreamNumber, dwCallbackReason: DWORD; hSourceFile, hDestinationFile: THandle); stdcall;
begin
 if dwCallbackReason = CALLBACK_CHUNK_FINISHED then
  begin
   if not CancelCopy then
    begin
     TInterlocked.Add(OverallBytesCopied, ...);
    end;
  end;
end;

Result := CopyFileEx(PChar(Source), PChar(Dest), @CopyCallBackTEST, nil, @CancelCopy, 0);

Geändert von DieDolly ( 3. Aug 2018 um 14:12 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:15 Uhr.
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