小编典典

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

all

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

我曾尝试System.IO.Compression.GZipStream在 .NET
中使用该类,但是当我的应用程序运行(实际上是单元测试)时,我得到了这个异常:

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

我现在意识到.zip文件与.gz文件不同,并且GZipZip.

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

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

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

还是有其他方法可以做到这一点?我更喜欢用代码来做,不下载任何第三方库或应用程序;安全部门不太喜欢这个…


阅读 69

收藏
2022-05-22

共1个答案

小编典典

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

2022-05-22