问题标签 [system.io.compression]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
793 浏览

exceldatareader - ExcelDataReader 3.4 - System.IO.FileLoadException

我正在使用 ExcelDataReader 3.4,它在我的开发人员 PC 上运行良好,但在生产 PC 上使用时,出现此错误

System.IO.FileLoadException:无法加载文件或程序集“System.IO.Compression,Version=4.2.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

在我的项目中,我System.IO.Compression复制了本地。
我正在使用 .NET 4.5、Visual Studio 2017

0 投票
1 回答
252 浏览

.net-core - 为什么 CoreRT 编译的程序无法处理 ZIP 文件?

我写了以下简单的程序来测试:

根据这个页面,我dotnet new nuget从 HelloZip 项目目录运行,在 nuget.config 中添加了推荐的包源,然后运行以下命令:

我收到以下错误:

我犯了一个错误,还是 AOT 编译器还没有正确支持 System.IO.Compression?

0 投票
1 回答
601 浏览

c# - C# ASP System.IO.Compression - 对多个文件使用 zipArchive.CreateEntryFromFile 时出现未经授权的访问异常()

我有以下代码行可用于使用 ZipFile.CreateFromDirectory(selectedFile, zipPath) 创建 zip

但是,除了将多个文件存档到单个 zip 文件夹中之外,以下代码应该出于所有意图和目的执行相同的操作:

var zip == ZipArchive zip

我已经尝试在应该创建 zip 的文件夹上禁用只读模式,但我认为这并不重要,因为使用 CreateFromDirectory() 的先前函数可以正常工作。我也试过在桌面上创建一个 ZIP,但我得到了同样的错误。

这是我得到的例外:

例外

作为一个注释,我注意到尽管有这个错误,它最初确实创建了 zip,只是它不能向它添加任何东西,不像 CreateFromDirectory() 可能是由于文件夹正在使用,没有对该区域的权限或文件夹已经存在。有没有一种方法可以让 CreateEntryFromFile() 正常工作,或者另一种方法可以用于多个文件?

0 投票
1 回答
415 浏览

c# - C# 无法解压缩使用 CreateEntryFromFile 压缩的文件

根据这篇文章,我正在使用以下代码压缩 SQL 备份文件:

使用正确的文件大小成功创建了 zip 文件。但我无法解压缩文件。我得到错误:

压缩 (zip) 文件夹无效或损坏

我试过使用 7-zip 和内置的 Windows 'Extract All' 选项。我还尝试重新安装软件,但没有成功。

我的代码版本:

0 投票
1 回答
1008 浏览

c# - 解压缩目录中的所有 .zip 档案

我正在努力配置一个脚本来解压缩一个目录中的所有 .zip 档案并将提取的文件放入不同的目录中。我想安排这个脚本按计划运行以处理传入的 .zip 档案。

对于源目录中的每个 .zip 文件,我需要将这些文件提取到目标位置,然后重复直到所有 .zip 文件都已处理完毕。

这是我可怕的尝试。

0 投票
1 回答
1976 浏览

c# - 使用 ASP.NET 上的 .NET Framework ZipArchive 类压缩大文件

我有一个代码可以获取目录中的所有文件,压缩每个文件并创建一个 .zip 文件。我在 System.IO.Compression 命名空间和扩展方法 CreateEntryFromFile 上使用 .NET Framework ZipArchive 类。这很好用,除非在处理大文件(大约 1GB 及以上)时,它会抛出一个System.IO.Stream Exception "Stream too large".

在MSDN上的扩展方法参考中,它指出:

当存在 ZipArchiveMode.Update 时,条目的大小限制被限制为 Int32.MaxValue。此限制是因为更新模式在内部使用 MemoryStream 以允许更新存档时所需的查找,并且 MemoryStream 的最大值等于 int 的大小。

所以这解释了我得到的异常,但没有提供如何克服这个限制的进一步方法。如何允许大文件处理?

这是我的代码,它是类的一部分,以防万一,GetDatabaseBackupFiles()and GetDatabaseCompressedBackupFiles()函数返回我迭代的 FileInfo 对象的列表:

0 投票
0 回答
450 浏览

c# - 文件名非 utf-8 的解压缩未以正确的名称提取

我在 .net 4.5 中使用 system.io.compression 提取 zip 文件

电子メール・テンプレート___第_6_世代™インテル®_コア™_ヴィープロプロセッサー(カスタマイズ可能

这是我在 zip 中的文件。解压后的文件名变成

pchir�gzxsii___u_6_wtyzgrr_nwT_axixtT_xtvdpi_(ftzeyulb

我知道这是一个编码问题。但我不确定在这里使用哪种编码。另外,我想知道一个 zip 文件是否包含中文、韩文等文件名。如何处理每个编码,以便在提取这些后我得到确切的文件名。提前致谢。

0 投票
1 回答
150 浏览

c# - 压缩文件而不包含文件夹

我正在使用 System.IO.Compression 将文件压缩为 .zip,位于源代码下方:

这段代码运行良好,但不幸的是在 .zip 中有整个文件夹序列(C: -> Users -> ... -> someFile.xml);我可以只用我需要的文件获得最终的 .zip 吗?我知道对于其他库,这个事实是可能的(DotNetZip 添加文件而不创建文件夹),但我想知道是否可以对标准库做同样的事情。

0 投票
0 回答
569 浏览

c# - 在 zipFile 中创建目录并使用 C# 添加文件

我要压缩的文件位于不同的文件夹中

文件夹结构如下:

我正在尝试使用以下结构创建一个 zip

我尝试了一个 stackoverflow链接,但无法让它在我的场景中工作。

我有直接在 zip 中的文件。但是我找不到将文件放在特定文件夹中的好来源。

我从以前的帖子中提到的代码:

我还尝试在更新模式下创建一个 zip 文件,然后如下:

但是 CreateFromDir 打破了一个例外,说 release.zip 已经存在。

我应该将我的文件复制到相应的文件夹中,然后应用 CreateFromDir 方法,还是有更好的方法来执行此操作而无需重新复制,然后在顶部创建 CreateFromDir。

0 投票
1 回答
258 浏览

powershell - 为什么 IO.Compression.ZipFile 条目数与 7zip GUI 不匹配?

我试图通过计算像这个答案这样的压缩条目的数量来验证 PowerShell 中 ZIP 存档的内容。

但是,7Zip GUI、gci、Entries.Count 和 7Zip CLI 之间的结果不一致,例如:

= 77779 个文件

= 77838 个条目

= 77779 个文件,59 个文件夹(即 77838 个对象)

但是 59 个文件夹计数是错误的 - 7Zip GUI 显示 77779 个文件和 35726 个文件夹。

有没有办法从.Entries 中排除文件夹?否则我可以像这样解析 7z.exe l 命令的结果,但更喜欢本机方法