如何把一个文件压缩成rar或zip?(50)

  • 主题发起人 主题发起人 paulwang200810
  • 开始时间 开始时间
P

paulwang200810

Unregistered / Unconfirmed
GUEST, unregistred user!
zip用zlib库rar,可以用调用winrar的方法
 
uses zlib;Procedure ZipFile(Source, OutFileName:String);//文件压缩var F:TCompressionStream; FSource,Fzip:TFileStream; i:integer;begin FSource:=TFileStream.Create(Source,fmOpenRead); i:= FSource.Size; FZip:=TFileStream.Create(OutFileName,fmCreate); F:=TCompressionStream.Create(clDefault,Fzip); Try F.CopyFrom(FSource,0); Finally F.Free; FSource.Free; End; Fzip.Write(i,sizeof(i)); Fzip.Free;end;procedure UnZipFIle(Source,OutFileName:String); //文件解压var F:TDecompressionStream; FSource,FUnzip:TFileStream; Buffer: PChar; i:integer;begin if not FileExists(Source) Then Exit; DeleteTmpFile; FSource:=TFileStream.Create(Source,fmOpenRead); FUnzip:=TFileStream.Create(OutFileName,fmCreate); FSource.Position:=FSource.Size-Sizeof(integer); FSource.Read(i,sizeof(i)); FSource.Position:=0; Try F:=TDecompressionStream.Create(FSource); Finally End; GetMem(Buffer,i); F.Read(Buffer^,i); FUnzip.WriteBuffer(Buffer^,i); FreeMem(Buffer); F.Free; FSource.Free; FUnZip.Free;end;不过压缩后的文件,好像不能通过winrar解压,只能使用上面的函数解压。
 
可以把RAR的可执行文件复制到软件目录下,用带参数的命令来执行就行。
 
如何获得zlib 库?
 
自己写就不说了,delphi自带的压缩功能,也有第三方的控件。利用WinRar软件也可以。打开Winrar软件的安装目录,详细阅读 Rar.txt 这个文件。你就明白了。
 
如何获得zlib 库? 答案: uses zlib;
 
d5没有这个库ZLIB
 
考虑可以用 vclzip2 控件!
 
不想用三方控件想自己写!  用commandline 也可以!  要效率好的才好!
 
去zlib网站找吧
 
http://www.zlib.net/
 
多人接受答案了。
 
后退
顶部