在C#中展开存档

时间:2015-08-12 16:00:06

标签: c# powershell

我在PowerShell中使用压缩代码,我需要在C#中创建相同的方法,但我遇到的问题是我没有扩展名的压缩文件,所以我不知道它是.zip .tar还是.tgz

powershell代码如下:

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

那你能帮我用C#实现吗?

1 个答案:

答案 0 :(得分:2)

有关检测压缩格式的信息,请参阅:Detecting Compression Formats

  

您可以确定它可能是其中一种格式   看着前几个字节。然后你应该测试一下   真的是其中之一,使用相关的完整性检查   该格式的实用程序,或实际进行解压缩。

     

您可以在说明中找到标题格式:

     

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开头,   0x9d bzip2(.bz2)以0x42,0x5a,0x68

开头

要在C#中解压缩文件,请参阅:Uncompressing Files in .NET

  

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

上述链接有一些不同的答案可能会根据您的需求提供更好的途径。