问题标签 [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 回答
56 浏览

c# - 使用 System.IO.Compression 压缩 Windows 10 Documents 文件夹,不包括重解析点

我正在编写一个简单的桌面应用程序来将文件从一台 PC 复制到另一台 PC。Windows 10 重新分析点有问题,特别是我的音乐。我以为只需要一行简单的代码就可以逃脱:

但并非如此,它会在“我的音乐”文件夹中崩溃。我也尝试了很多不同的方法,结果都是一样的——访问被拒绝。复制和/或压缩 Documents 文件夹真的这么难吗?我对此表示怀疑,我只是错过了一些东西。我尝试提升权限,但也没有用。任何人都有如何做到这一点的例子?

0 投票
1 回答
207 浏览

c# - 查找 DeflateStream 的编码类型

我有一个 zip 文件,里面有一个 csv 文件。我正在使用以下代码来读取文件:

zipEntry 的类型为 System.IO.Compreesion.Deflatestream。

我尝试使用 StreamReader.CurrentEncoding,但它给出了错误的编码值。

我现在正在使用这个解决方案,

但在 fileStrem.Length 处得到 NotSupportedException。

如何找到 zipEntry (File.csv) 的正确编码?

0 投票
0 回答
31 浏览

c# - ZipArchive 缺少空格?

我不知道如何解释我的问题,但我会尝试。我有一个批处理服务,它创建几个文本文件并将它们放在一个 zip 文件中。

有两个文件有很多空格。我们正在谈论文本之间的数千个空格。

问题是我通过电子邮件发送的这个文件,当它未压缩时,它必须包含更少的字符。它应该有 10170 列,但我有 10152。

这就是我基于 stringbuilders 创建 zip 的方式。

然后将流作为邮件附件附加。

谢谢!

0 投票
1 回答
12557 浏览

c# - 解压错误:GZip 标头中的幻数不正确

我是System.IO.Compression的新手

我正在尝试压缩和解压缩一些信息。

对于压缩,我使用了代码项目,它似乎可以工作。我现在正在压缩字符串。

为了解压,我想压缩一个Stream

这就是我目前所拥有的

这是压缩的代码

这是解压缩的代码

此时我在以下行中解压缩时出错:

它只是不进入while循环并说:

GZip 标头中的幻数不正确。确保您传入的是 GZip 流

我的解压方法基于以下stackoverflow帖子

尝试2:

结果: var rByte = sr.Read(byteArray, 0, byteArray.Length); 更新 1 行中的相同错误:

正如代码项目中给出的解压缩字符串完美地工作。

0 投票
5 回答
10538 浏览

c# - ZipArchive 给出意外结束的数据损坏错误

我正在尝试使用一些字节数组数据动态创建一个 zip 流,并通过我的 MVC 操作将其下载。

但下载的文件在 Windows 中打开时总是出现以下损坏错误。

在此处输入图像描述

当我尝试从 7z 提取时出现此错误

在此处输入图像描述

但请注意,从 7z 中提取的文件没有损坏。

我正在使用ZipArchive,下面是我的代码。

我在这里做错了什么。

任何帮助将不胜感激,因为我整天都在为此苦苦挣扎。

提前致谢

0 投票
1 回答
121 浏览

c# - 如何更新 ZIP 存档中的每个文件?

尝试以下操作时,我收到错误“集合已修改;枚举操作可能无法执行。”。如何循环浏览 Zip 条目并更新它们?

0 投票
1 回答
354 浏览

vb.net - 使用 system.io.compression vb.net 列出文件

所以我试图在我的程序中使用 zip 文件,但我什至无法从 io.compression 获得基本功能,即打开读取:

我在这里尝试做的是将 zip 存档中包含的文件的文件名列出到列表框。

Visual Studio 只是中断了应用程序的运行,而没有给我任何错误。这几乎就像 msdn 上的示例。我确实添加了对 system.io.compression 和 system.io.compression.filesystem 的引用。

0 投票
2 回答
1985 浏览

javascript - 如何在 angularJs 应用程序中从服务器生成和下载 zip 文件?

我的代码如下:

来自组件的 AngularJs 代码:

毕竟代码它正在下载 zip 文件,但是当我试图打开 zip 文件时,它给了我错误。无效的 zip 文件。

请注意,我使用 System.IO.Compression 库来生成和下载 zip 文件。

0 投票
1 回答
1449 浏览

c# - 使用 System.IO.Compressing.Gzip 压缩和解压缩非常大的文件

我的问题可以用以下语句来描述:

  • 我希望我的程序能够压缩和解压缩选定的文件
  • 我有非常大的文件(20 GB+)。可以安全地假设该大小永远不会适合内存
  • 即使压缩后压缩文件可能仍然无法放入内存
  • 我想使用.NET Framework中的 System.IO.Compression.GzipStream
  • 我希望我的应用程序是并行的

由于我是压缩/解压缩的新手,我对如何做到这一点有以下想法:

我可以使用将文件拆分成块并分别压缩它们。然后将它们合并回一个完整的压缩文件。 图片显示我的想法

关于这种方法的问题 1 - 压缩多个块然后将它们合并在一起会给我正确的结果,即如果我要反转过程(从压缩文件开始,回到解压缩),我会收到相同的原始输入吗?

关于这种方法的问题 2 - 这种方法对您有意义吗?也许你可以指导我去听一些关于这个话题的好讲座?不幸的是,我自己找不到任何东西。

0 投票
2 回答
97 浏览

c# - 根据父母一次性返回一次性

这是我正在处理的代码的一部分(为清楚起见进行了修改):

现在这失败了,因为存档正在被处理在 getMyArchiveStream 的出口,这阻止了myStream使用

有没有办法在处理myStream时处理存档

另一种方法是让存档保持打开状态并使包含的类成为一次性的,但这在可用性方面有其自身的缺点。

背景:

我创建了一个简单的打包类(至少比 System.IO.Packaging 更简单),它将文件作为字节数组返回。显然这会消耗大量内存,我想改用流。