我正在尝试以编程方式解压缩压缩文件。
我尝试在.NET中使用System.IO.Compression.GZipStream
类,但当我的应用程序运行时(实际上是一个单元测试),我会得到这个异常:
System.IO.InvalidDataException: GZip头中的魔法数字不正确。确保你传递的是一个GZip流。
我现在意识到.zip
文件和.gz
文件是不一样的,而且GZip
和Zip
也不一样。
然而,由于我能够通过手动双击压缩文件,然后单击“提取所有文件”按钮来提取文件,我认为在代码中也应该有一种方法来做到这一点。
因此,我尝试使用Process.Start()
和压缩文件的路径作为输入。这导致我的应用程序打开一个窗口,显示压缩文件中的内容。这一切都很好,但应用程序将被安装在一个服务器上,没有人可以点击“提取所有文件”按钮。
那么,我如何让我的应用程序提取压缩文件中的文件?
或者还有别的办法吗?我更喜欢用代码来做,而不下载任何第三方库或应用程序;安全部门对此不太感兴趣……