如何在DELPHI中压缩和解压缩文件.该文件格式RAR或ZIP可识别.
如果有此控件的话请留言
全天在线.

解决方案 »

  1.   

    这个……
    DELPHI自带一个ZIP的单元文件,可以做这个工作……(不能做RAR的)
      

  2.   

    给我也发一个吧,[email protected]
      

  3.   

    我这里有一段我写的代码,例子是压缩解压缩单个文件的,你自己扩展一下,就可以压缩多个文件了。比如说把文件连起来,在文件的后面接上一些必要的解压缩的时候用的信息。
    压缩的代码
    先uses Zlib
    var
      P:PChar;                //PChar
      TCS:TCompressionStream; //压缩流
      FS:TFileStream;         //文件流
      OutPutS:TFileStream;    //文件流
    begin
      FS:=TFileStream.Create(要压缩的文件,fmOpenRead,fmShareDenyNone);
      GetMem(P,FS.size);
      OutPutS:=TFileStream.Create(压缩后的文件,fmOpenWrite Or fmCreate,fmShareDenyNone);
      TCS:=TCompressionStream.Create(clMax,OutPutS);
      FS.ReadBuffer(P^,FS.Size);
      TCS.WriteBuffer(P^,FS.Size);
      TCS.Free;
      FS.Free;
      OutPutS.Free;
      FreeMem(P);
    end;解压缩:
    var
      P:PChar;
      TDS:TDecompressionStream;
      FS:TFileStream;
      OutPutS:TFileStream;
      OldSize:Integer;
    begin
      FS:=TFileStream.Create(要解压的文件,fmOpenReadWrite);
      OutPutS:=TFileStream.Create(解压后的文件,fmOpenReadWrite Or fmCreate);
      FS.ReadBuffer(OldSize,Sizeof(OldSize));
      TDS:=TDecompressionStream.Create(FS);
      GetMem(P,OldSize);
      TDS.ReadBuffer(P^,OldSize);
      OutPutS.WriteBuffer(P^,OldSize);
      TDS.Free;
      FS.Free;
      OutPutS.Free;
      FreeMem(P);
    End;
    我从代码里砍出来的,比较的匆忙,没有注释,你自己看看吧。有什么事情联系我的QQ 12416204 我隐身的。
      

  4.   

    对不起,没有看见你说要求RAR识别,这个RAR是不能识别的。