用C#代码提取7zip

我需要在C#中使用7zip。 没有控制台,只有7zSharp.dll? +我在这里找到一些数据

http://7zsharp.codeplex.com/releases/view/10305 ,

但我不知道如何使用它( – 我可以创建.bat(.cmd)文件,但我需要通过dll文件)正好:我需要提取.7z文件与键)

从7zip.com下载独立控制台版本并将其添加到您的项目中。

您需要在项目中添加这3个文件:

  1. 7za.exe
  2. 了7za.dll
  3. 7zxa.dll

不要忘记在其偏好中说复制到输出目录。

提取存档:

public void ExtractFile(string sourceArchive, string destination) { string zPath = "7za.exe"; //add to proj and set CopyToOuputDir try { ProcessStartInfo pro = new ProcessStartInfo(); pro.WindowStyle = ProcessWindowStyle.Hidden; pro.FileName = zPath; pro.Arguments = string.Format("x \"{0}\" -y -o\"{1}\"", sourceArchive, destination); Process x = Process.Start(pro); x.WaitForExit(); } catch (System.Exception Ex) { //handle error } } 

创建档案:

 public void CreateZip(string sourceName, string targetArchive) { ProcessStartInfo p = new ProcessStartInfo(); p.FileName = "7za.exe"; p.Arguments = string.Format("a -tgzip \"{0}\" \"{1}\" -mx=9", targetArchive, sourceName); p.WindowStyle = ProcessWindowStyle.Hidden; Process x = Process.Start(p); x.WaitForExit(); } 

7zip的作者提供了LZMA SDK和良好的文档,应该能够实现你想要的。 SDK包含能够压缩/解压缩的C#代码。

另一个选择是使用类似C#(.NET)接口的7-Zip Archive DLL

更新:另一位用户在这里问了一个类似的问题: 如何用.NET创建7-Zip档案? 答案有几个我提供的相同链接,还有一些。

它看起来不像这个库支持加密文件。 没有方法将密钥作为参数。

7zSharp库似乎不支持密码作为输入,只是一个zip文件。

该库只调用7zip的.exe,因此您可以下载源代码并将其更改为接受密码参数,然后将该密码参数传递给可执行文件。