Nee, find es nicht mehr, aber hier mal eine ganz einfache Konstruktion:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i, o: TStream;
p, l: Int64;
b: array[0..511] of Byte;
begin
o := nil;
i := TFileStream.Create(Edit1.Text, fmOpenRead or fmShareDenyNone);
try
o := TFileStream.Create(Edit2.Text, fmCreate);
l := i.Size;
p := 0;
while p < l do
try
i.Position := p;
o.Position := p;
o.Write(b, i.Read(b, SizeOf(b)));
Inc(p, SizeOf(b));
except
Inc(p, SizeOf(b));
end;
finally
o.Free;
i.Free;
end;
end;
Für CD/DVD kann/sollte man aus dem 511 ein 2047 machen (es geht aber auch so, nur eben bis zu 4 Mal langsamer, bei den fehlerhaften Sektoren, aber immernoch schneller, als der Unstoppable
).
Alternativ gibt es auch noch den
Unstoppable Copier, aber ganz im Ernst, das Programm funktioniert zwar, ist allerdings total schrottig und scheinbar ohne das geringste Wissen über Dateizugriffe programmiert wurden und demnach extrem lahm.
(Byteweiser Zugriff, wo die Laufwerke doch nur Sektorweise arbeiten
... Seit ich weiß, wie das im Inneren arbeitet, kann ich das Teil eigentlich nicht mehr wirklich empfehlen)
Kannst'e ja mit 2 TEdits und einem TButton zum Laufen bekommen (eventuell auch noch je ein TButton mit TOpenDialog, bzw. TSaveDialog an die Edits dran)
oder direkt die Dateinamen/-pfade angeben.