7zip:在C#中,如何将不同目录下的多个同名文件添加到同一个zip文件中?

Posted

技术标签:

【中文标题】7zip:在C#中,如何将不同目录下的多个同名文件添加到同一个zip文件中?【英文标题】:7zip: In C#, how to add multiple files of the same name in different directories to the same zip file? 【发布时间】:2011-10-11 20:15:44 【问题描述】:

我创建了一个 C# sn-p,它调用 7zip (7za) 将文件列表添加到 zip 存档中。问题是不同目录中的多个文件具有相同的名称,因此 7zip 要么抱怨名称重复,要么将第一个文件替换为仅存储最后添加的第二个文件。我无法递归扫描允许重复的目录。

在不考虑完整路径的情况下,有没有办法强制 7zip 存储目录,或者在 ASP.NET MVC 3 C# 中创建具有重复文件名的 zip 文件?

我们图片的路径是每五位数字分隔的 GTIN 编号。最后五个是图像的名称。

 G:\1234\56789\01234.jpg
 G:\4321\09876\01234.jpg
 G:\5531\33355\01234.jpg

这些将无法正确存储在 7zip 存档中。

【问题讨论】:

【参考方案1】:

您可以使用 SevenZipSharp:http://sevenzipsharp.codeplex.com/ 一个 7zip 的包装器。您将完全控制代码。

【讨论】:

github.com/squid-box/SevenZipSharp 新位置【参考方案2】:

我们通过创建一个不包含前导反斜杠的文件列表,然后从包含它们的目录运行应用程序,设法在同一个存档中获得多个:

1234\56789\01234.jpg
4321\09876\01234.jpg
5531\33355\01234.jpg

它现在解决了它。谁有更好的主意?

【讨论】:

以上是关于7zip:在C#中,如何将不同目录下的多个同名文件添加到同一个zip文件中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中的 WinRAR、7Zip、Zip、Tar、Winzip 中检查文件是不是存在

C# 解析XML文件,使用XmlNode["..."]的方式能访问到此节点下的多个同名节点吗?

仅当行不存在时,如何将一行添加到不同子目录下的多个文本文件?

7zip在目录中批量处理多个文件,而存档中没有文件夹

替换不同目录的下的同名文件

在 C# 代码中提取 7zip