此代码使用: TArchiveEntry ;
所以,我真的怀疑这不是来自 Zlib 单位吗?因为 TArchiveEntry 可以在不声明 Zlib 单位的情况下使用。
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 单位。
var compr : TZCompressionStream;
for i := 0 to zFiles.Count-1 do
begin
compr := TZCompressionStream.Create(mStream, zcDefault);
compr.CopyFrom(infile,c);
compr.Free;
end;
我想知道为什么,有什么区别?我无法弄明白,几乎有相同的表现。
答案 0 :(得分:5)
TArchiveEntry
单元(或System.ZLib
单元中没有System.Zip
类型。您显示的第一个代码段是旧的新闻组帖子中代码的直接复制/粘贴,该帖子在您复制的代码段上方定义了自己的TArchiveEntry
类型:
答案 1 :(得分:1)
这个问题似乎是:
如何确定定义符号的单位?
编译完项目后,将光标悬停在符号上,IDE将显示一个提示,用于命名定义符号的单位。
或者,使用 CTRL +单击以打开在编辑器中声明符号的单位。