一尘不染

在.net中以编程方式解压缩文件

c#

我正在尝试以编程方式将压缩文件解压缩。

我曾尝试System.IO.Compression.GZipStream在.NET中使用该类,但是当我的应用运行(实际上是单元测试)时,出现此异常:

System.IO.InvalidDataException:GZip标头中的幻数不正确。确保您正在传递GZip流。

我现在意识到.zip文件与文件不相同.gz,并且与GZip也不相同Zip

但是,由于我可以通过手动双击压缩文件然后单击“提取所有文件”按钮来提取文件,因此我认为也应该在代码中采用这种方法。

因此,我尝试Process.Start()将压缩文件的路径用作输入。这使我的应用程序打开一个窗口,显示压缩文件中的内容。很好,但是该应用程序将安装在服务器上,并且没有单击“提取所有文件”按钮的位置。

那么,如何使我的应用程序提取压缩文件中的文件?

还是有其他方法可以做到?我更喜欢用代码来实现,而无需下载任何第三方库或应用程序;安全部门对此不太看好…


阅读 223

收藏
2020-05-19

共1个答案

一尘不染

我们已经在许多项目中成功使用了SharpZipLib。我知道这是第三方工具,但是其中包含源代码,如果您选择在这里重新发明轮子,它可能会提供一些见识。

2020-05-19