用delphi编写。
(本人比较菜,求教)
要求如下:
1.此文件在压缩的状态,先解压
2.删除指定的一些文件,比如(1.txt到8.txt)之间的文件。
3.然后再压缩。

解决方案 »

  1.   

    用什么压缩的,可以调用winrar,google winrar的命令行参数
      

  2.   

    //直接删除压缩包中指定的文件:
    function DeleteFromRAR(RarPro, RarName, FileNames, SwitchOptions : string): integer;
    var pcharcomm : PChar;
        resultCodes : dword;
        sINFO : STARTUPINFO;
        pINFORMATION : PROCESS_INFORMATION;
    begin
      pcharcomm := PChar(Rarpro + ' d ' + RarName + ' ' + FileNames + ' ' + SwitchOptions);
      ZeroMemory(@sINFO, sizeof(sINFO));
      sINFO.cb := SizeOf(sINFO);
      if not CreateProcess( nil, pcharcomm, nil, nil, False, 0, nil, nil, sINFO, pINFORMATION ) then
        resultCodes := 1000
      else begin
        WaitForSingleObject(pINFORMATION.hProcess, INFINITE);
        GetExitCodeProcess(pINFORMATION.hProcess, resultCodes);
      end;
      CloseHandle( pINFORMATION.hProcess );
      CloseHandle( pINFORMATION.hThread );
      result := resultCodes;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    var i:integer;
        s:string;
    begin
      for i:= 1 to 8 do s:=s + inttostr(i)+'.txt ; ';   //将1.txt~8.txt的文件名组成列表
      i:=DeleteFromRAR('C:\Progra~1\WinRAR\winrar.exe', //winrar.exe及路径
         'C:\Docume~1\Admini~1\桌面\桌面.rar',          //压缩包名及路径
          s,                                            //待删除的文件名
          '-y');                                        //所有提示自动选 yes
      case i of
        0: s:='操作成功';
        1: s:='发生非致命错误';
        2: s:='发生致命错误';
        3: s:='发生 CRC 错误';
        4: s:='试图修改被锁定的档案文件';
        5: s:='写入磁盘错误';
        6: s:='无法打开文件';
        7: s:='命令行选项错误';
        8: s:='使用内存出错';
        255: s:='用户中断了操作';
        else s:='无法建立线程';
      end;
      showmessage(s);
    end;
      

  3.   

    还请这位网友“gzzai(广州仔)”
    将代码补写全了吧,我也想学习一下的
    先向你感谢一下的
      

  4.   

    加问一下:如果是删除  某个文件里面的 多条记录了 
          如:20120510.txt文件里面  xx到yy条的信息
      

  5.   

    标准的解压缩算法可以调用winrar,如果不是,就另当别论了
      

  6.   

    这里是交流的平台,无需客气。但我已经将代码都列出来了呀,你还让我补些什么?你试试建立一个rar压缩文件,里面放1.txt、2.txt..9.txt,然后,运行上面的代码看看。