各位:
    我用VCLZip压缩一个文件夹,这个文件夹内还有套有一个文件夹,各自包含几个文本文件。关系如下:
c:\11
     -包含名称是33的文件夹
         --包含几个文本文件
     -包含几个文本文件
我想把11文件夹压缩成22.zip,但是通过下面的程序运行后发现,生成的22.zip中把这两个文件夹中的文本文件全部放到了22.zip中,没有33这个文件夹了。
    不知道我想保留11文件夹的逻辑关系的话,下面的程序该怎么样改?        
With VCLZip1 do
  begin
    ZipName := 'C:\22.ZIP';
    MultiZipInfo.MultiMode := mmNone;  
    MultiZipInfo.FirstBlockSize := 700000; 
    MultiZipInfo.BlockSize := 1457600;     
    FilesList.Add('C:\11\*.*');
    Recurse := true;       
    Zip;
  end;

解决方案 »

  1.   

    程序中用到的,你参考一下:
    var
      vzLms: TVCLZip;
    ...
      vzLms.RootDir := sRootDir;
      vzLms.FilesList.Text := '*.*';
      vzLms.RelativePaths := True;
      vzLms.Recurse := True;
      vzLms.StorePaths := True;
      vzLms.ZipName := sLmsFile;
      vzLms.Zip;
    ...
      

  2.   

    感谢 weizi2000(秋风啊) ,可是结果和以前的一样.
      

  3.   

    设置了storepaths和recurse属性值为true后
    应该就可以了;
    或者你可以考虑再设置一下relativepaths := true
      

  4.   

    //包含子目录
    Recurse := True;
    //保持相对路径
    RelativePaths := True;
    //设置初始路径以避免档案内出现不必要的上级目录            
    RootDir:=所要压缩文件夹的初始路径;