You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ZipStorer添加目录时如何仅保留目标根目录而非完整路径

问题原因

  • 初始代码:AddDirectory方法的第三个参数为压缩包内的目录前缀,你传入了完整的压缩包文件路径zipfile,ZipStorer会将该路径的层级全部保留到压缩包内,因此解压后出现Boba/bin/Release/ZipTest的完整目录结构。
  • 调整后的代码:第二个参数需要传入待压缩目录的本地完整绝对路径,你仅传入了目录名ZipTest,程序无法正确定位源目录,路径解析异常导致生成重复拼接的ZipTestZipTest目录,同时错误将压缩包自身作为源文件打包,产生了多余的空zip文件。

正确实现

static string mydir = @"C:\Boba\bin\Release\ZipTest";
static string zipfile = string.Concat(mydir, ".zip");

using (ZipStorer zip = ZipStorer.Create(zipfile))
{
    // 第二个参数传本地待压缩目录的完整路径,第三个参数仅填压缩包内要显示的根目录名
    zip.AddDirectory(ZipStorer.Compression.Deflate, mydir, Path.GetFileName(mydir));
}

修改后压缩包内仅保留ZipTest作为根目录,内部直接存放原目录下的所有文件,不会产生多余路径和空文件。


内容的提问来源于stack exchange,提问作者Andrey Vasiliykov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 00:54:03