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

使用DotNetZip向现有Zip添加文件时避免生成目录结构的问题

解决DotNetZip批量添加文件到Zip根目录的问题

问题核心在于使用AddFiles方法时,若传入文件的完整路径,DotNetZip默认会保留源文件的完整目录结构。要让文件直接放在Zip根目录,需使用指定根路径的重载方法,告诉Zip库要移除的前缀目录。

修正后的VB.Net代码:

Dim path = "\\server\test\test\"
' 直接筛选目录下的txt文件,简化代码逻辑
Dim txtFiles = IO.Directory.EnumerateFiles(path, "*.txt").ToList()

Using zip As Ionic.Zip.ZipFile = ZipFile.Read(Path.Combine(path, "Alphabet.zip"))
    ' 调用AddFiles重载:第二个参数传入空字符串,将文件直接放在Zip根目录
    zip.AddFiles(txtFiles, "")
    zip.Save()
End Using

关键说明:

  • AddFiles的第二个参数为entryNameBase,传入空字符串时,所有文件会直接置于Zip根目录,不会保留源文件的目录层级。
  • 原代码中di.GetFiles(di)是错误写法,改用Directory.EnumerateFiles可以直接筛选.txt文件,省去多余的循环判断。
  • 用Path.Combine拼接Zip文件路径,能避免手动拼接路径时的格式问题,提升代码兼容性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 12:33:18