Expand-Archive in C#

本文关键字:in Expand-Archive | 更新日期: 2023-09-27 18:07:28

我在PowerShell中有压缩代码,我需要创建方法在c#中做同样的事情,但我面临的问题是,我的压缩文件没有扩展名,所以我不知道它是。zip .tar还是。tgz

powershell代码如下:

Expand-Archive -Path $compressedFile.FullName -OutputPath $workDir -ShowProgress 

所以你能帮我在c#中实现它吗?

Expand-Archive in C#

检测压缩格式,请参见:检测压缩格式

你可以判断它可能是这些格式之一看看前几个字节。然后您应该进行测试,看看它是否Really就是其中之一,使用关联的完整性检查实用程序,或实际继续解压缩。

您可以在描述中找到标题格式:

Zip (.zip)格式描述,以0x50, 0x4b, 0x03, 0x04开头(除非为空,否则最后两个是0x05, 0x06或0x06, 0x06) Gzip(.gz)格式说明,以0x1f、0x8b、0x08开头的xz (.xz)格式描述,以0xfd, 0x37, 0x7a, 0x58, 0x5a, 0x00开头其他:

zlib (.zz)格式描述,以(以位为单位)0aaa1000开头Bbbccccc,其中选择CCCCC使第一个字节乘以256加第二个字节是31的倍数。compress (.Z)以0x1f开头,bzip2 (.bz2)以0x42, 0x5a, 0x68开头

在c#中解压缩文件,参见:在。net中解压缩文件

我们已经在许多项目中成功地使用了SharpZipLib。我知道这是第三方工具,但包含源代码,可以提供一些

如果你选择在这里重新发明轮子。

上面的链接中有几个不同的答案,可能会根据您的需要提供更好的路径