![]() |
date ikopieren mit fortsetzen funktion
Hallo,
ich möchte ein programm schreiben, mit dem man dateien, kopieren kann (z.b. zu einem anderen pc im netzwerk), jedoch sollte die übertragung pausierbar sein, und die datei dann an der letzten stelle weiter fortgesetzt werden können. kann mir jemand einen rat geben, wie ich dies verwirklichen kann? ich habe mich schon mit streams beschäftigt, nur ohne wirklichen erfolg. MFG Van HelF |
Re: date ikopieren mit fortsetzen funktion
Moin Van HelF,
wenn Du die Daten per TFileStream überträgst, müsstest Du eigentlich jeweils nur nachschauen, wie gross die Zieldatei ist, und vor dem, fortgesetzten, Lesen der Quelldatei die TFileStream.Position auf diesen Wert setzen. Solange sie nicht komplett ist, bekommt die Zieldatei einen temporären Namen, oder eine entsprechende Endung, und wird am Schluss auf eingentlichen Namen umbenannt. |
Re: date ikopieren mit fortsetzen funktion
hab ich versucht, nur leider wird die datei immer wieder erstetz und neu von vorne geschreiben.
Delphi-Quellcode:
procedure kopieren;
var Quelle, Ziel, Zielgr:Tfilestream; gr:int64; begin Quelle:=Tfilestream.Create('D:\test.exe',fmOpenRead or fmShareDenyNone); Zielgr:=Tfilestream.Create('D:\test2.exe',fmOpenRead or fmShareDenyNone); gr:=zielgr.Size; zielgr.Free; Ziel:=Tfilestream.Create('D:\test2.exe',fmCreate or fmShareDenyWrite); quelle.position:=gr; try Ziel.CopyFrom(Quelle, 0); finally Ziel.free; end; Quelle.free; end; |
Re: date ikopieren mit fortsetzen funktion
die datei wird ersetzt weil du sie mit fmCreate öffnest. fmCreate sorft dafür das die Datei angelegt wird wenn sie nicht existiert und beim öffnen geleert wird. nutze fmOpenWrite bzw. fmOpenReadWrite
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 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 by Thomas Breitkreuz