Nuja
Du brauchst wohl auch den Dateinamen, oder?
dann würd ichs so machen:
Delphi-Quellcode:
type
TFileHeader = record
len: Int64;
name: string;
path: string;
Mit dem Filestream dann schreiben:
Delphi-Quellcode:
var files: array of TFileHeader;
fs: TFIleStream;
ms: TMemoryStream;
i: Integer;
slen: Int64;
begin
ms := TMemoryStream.Create;
fs := TFileStream.Create('archive.xzs',fmOpenCreate);
for i := 0 to high(files) do
begin
slen := length(files[i].name);
fs.write(slen); //länge des dateinamens schreibeb
fs.Write(@files[i].name[1],slen); //dateinamen schreiben
fs.Write(len); //länge der datei schreiben
ms.size := 0;
ms.LoadFromFile(files[i].path); //datei laden
ms.Position := 0;
fs.CopyFromStream(ms,ms.size); //datei schreiben
end;
end;
so weisst du beim laden immer, wie lange deine daten sind.
Im übrigen würde ich auch zu einer vorhandenen Lösung greifen, ich meine,m was hast du gegen Komprimierung?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1