基于其他 zip 文件 C# 更新 zip 文件

Posted

技术标签:

【中文标题】基于其他 zip 文件 C# 更新 zip 文件【英文标题】:Update zip file based on other zip file C# 【发布时间】:2016-06-06 13:23:26 【问题描述】:

所以我在目录中有一个 zip 文件。此 zip 文件包含不同类型的文件。当用户单击我的 WPF 应用程序中的按钮时,需要更新 zip 文件。

它需要检查另一个目录中另一个 zip 文件中的文件。如果第一个 zip 文件中没有文件,则需要将该文件从另一个 zip 文件复制到新的 zip 文件中。

我为此使用了 Ionic zip 方法。

到目前为止,我只使用了 file.copy overwrite = true 代码。 但是当 zip 文件为 1gb+ 时,它需要很长时间,因为它只是替换了 zip 文件。

有人知道我该如何解决这个问题吗?

问候托马斯

更新: 这是我目前得到的代码:

private void getlocaldata()
        

            string admindata = @"\\networklocation\test.zip";  
            string localPath = @"C:\finaldata\test.zip";   

            File.Copy(admindata, localPath, true);

        

【问题讨论】:

什么是file.copy overwrite = true?您必须add files to zip 而不是重新压缩所有内容(如果您现在正在这样做)。考虑在问题中添加相关代码(你现在是如何做的)。 如果您想尝试使用默认的 .Net Zip,那么您希望 ZipArchive 参见msdn.microsoft.com/en-us/library/… 感谢 cmets 伙计们,但您知道我如何根据另一个 zip 文件中的文件检查某个文件是否已存在于 zip 文件中。 【参考方案1】:

您可以使用DotNetZip 库。

检查 zip 中的文件:

zip["Readme.txt"] = null;

但无论如何,您必须再次压缩文件才能更改 zips 密码。您可以找到 here 的示例。

【讨论】:

以上是关于基于其他 zip 文件 C# 更新 zip 文件的主要内容,如果未能解决你的问题,请参考以下文章

C#中如何获取程序的当前文件夹名称并将zip文件解压到当前文件夹? [复制]

如何在 C# 中解压缩多层 zip 文件

如何在 C# 中使用 Ionic-zip 下载大文件时修复 zip 文件损坏错误

C#中如何通过ZipFile类操作ZIP文件(压缩、解压)

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

C#:以编程方式创建拆分 zip 文件