此代码使用:TArchiveEntry;
所以,我真的怀疑这不是来自Zlib Unit 吗?因为可以在不声明Zlib单元的情况下使用TArchiveEntry。
var AE : TArchiveEntry;
AE.EntryType := aeFile;
AE.FileNameLen := Length(sr.Name);
AE.FileLength := sr.Size;
OutStream.Write(AE, SizeOf(AE));
OutStream.Write(sr.Name[1], Length(sr.Name));
// Write the file itself
TmpStream := TFileStream.Create(ADir + sr.Name, fmOpenRead or fmShareDenyWrite);
OutStream.CopyFrom(TmpStream, TmpStream.Size);
TmpStream.Free;
毫无疑问,这是来自Zlib Unit。
var compr : TZCompressionStream;
for i := 0 to zFiles.Count-1 do
begin
compr := TZCompressionStream.Create(mStream, zcDefault);
compr.CopyFrom(infile,c);
compr.Free;
end;
我想知道为什么,有什么不同?我无法弄清楚,几乎有相同的性能。