基于其他 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# 中使用 Ionic-zip 下载大文件时修复 zip 文件损坏错误