7zip 压缩 压缩路径的问题

      CDirItem di;

      UString name = L"Debug\\123.txt";   //这是待压缩的文件 这个文件是当前目前下面的一个Debug文件夹下的txt文件

//只有这样写,压缩后的文件*.7z中才会只有Debug这个目录

//如果UString name = L"D:\\Debug\\123.txt"; 是个绝对路径,那么*.7z中也是一个绝对路径的。

//一般的压缩软件,比如360压缩,对一个文件夹进行压缩后,*.zip压缩包中只有这个被压碎的文件夹,而不是一个据对路径。即符合第一种情况,相对路径的情况。




      
      NFile::NFind::CFileInfoW fi;
      if (!fi.Find(name))
      {
        PrintString(UString(L"Can't find file") + name);
        return 1;
      }


      di.Attrib = fi.Attrib;
      di.Size = fi.Size;
      di.CTime = fi.CTime;
      di.ATime = fi.ATime;
      di.MTime = fi.MTime;
      di.Name = name;
      di.FullPath = name;

      dirItems.Add(di);//也就是说,此处你添加到dirItems中的di的name属性的值如果是据对路径,那么*.zip中的就是绝对路径。

如果添加的name是相对路径,那么*.zip中的就是相对路径。大多数应该是相对路径。

    }
    COutFileStream *outFileStreamSpec = new COutFileStream;
    CMyComPtr<IOutStream> outFileStream = outFileStreamSpec;
    if (!outFileStreamSpec->Create(archiveName, false))   //创建后缀为.7z的压缩文件,
    {
      PrintError("can't create archive file");
      return 1;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值