文件大人请入

liulangnanhai 2004-12-15 01:50:46
小弟对stream不太懂,上次发一个个贴子求文件压缩的用法,后来达人们给我一个函数,但是我用起来都是报错,再请达人们指点。

function MyZip(InFlName, OutFlName: string): integer;
var
InFile, outfile: TFilestream;
ZStream: TCustomZLibStream;
begin
InFile := TFileStream.Create(InFlName, fmOpenRead);
try
OutFile := TFileStream.Create(OutFlName, fmCreate);
try
ZStream := TCompressionStream.Create(clFastest, OutFile);
try
ZStream.CopyFrom(InFile, 0);
finally
ZStream.Free;
end;
finally
result := outfile.Size;
OutFile.Free;
end;
finally
InFile.Free;
end;
end;

procedure MyUnZip(InFlName, OutFlName: string);
const
buffersize = 1024;
var
InFile: TStream;
OutFile: TStream;
ZStream: TCustomZLibStream;
begin
InFile := TFileStream.Create(InFlName, fmOpenRead);
try
OutFile := TFileStream.Create(OutFlName, fmCreate);
try
ZStream := TDecompressionStream.Create(InFile);

try
OutFile.CopyFrom(ZStream, 0);
finally
ZStream.Free;
end;

finally
OutFile.Free;
end;
finally
InFile.Free;
end;

.
.
.

procedure Tmain.Button1Click(Sender: TObject);
begin
Showmessage(inttostr(MyZip('.\ftp.ini','.\ftp.zip')));
end;

procedure Tmain.Button2Click(Sender: TObject);
begin
MyUnZip('.\ftp.zip','.\send\ftp.ini');
end;



在压缩的时候正常,但是在解压的时候运行到
OutFile.CopyFrom(ZStream, 0);
的时候报错:
"Invalid stream Operation"

各位达人请帮帮我吧.
...全文
57 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
pinyu 2004-12-15
  • 打赏
  • 举报
回复
你把这一行注释掉试试: OutFile := TFileStream.Create(OutFlName, fmCreate);

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧