extract 7zip in C# code

匿名 (未验证) 提交于 2019-12-03 01:39:01

问题:

I need use 7zip in C#. Without console, just with 7zSharp.dll ? + I find some data here

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

but I don't know how to use it( - I could create .bat(.cmd) file, but I need throught dll file) Exactly: I need extract .7z file with key)

回答1:

Download the standalone console version from 7zip.com and add it to your project.

You need those 3 Files added in the project:

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

Don't forget to say Copy to Output Directory in it's preferences.

Extract an archive:

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         }     } 

Create an archive:

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(); } 


回答2:

The authors of 7zip provide the LZMA SDK and good documentation which should be able to achieve what you want. The SDK includes C# code capable of compression / decompression.

Another option would be to use a something like C# (.NET) Interface for 7-Zip Archive DLLs

UPDATE: Another user asked a similar question here: How do I create 7-Zip archives with .NET? The answer has several of the same links I provided and a few more.



回答3:

It doesn't look like this library supports encrypted files. No method takes a key as a parameter.



回答4:

The 7zSharp library doesn't seem to support password as input, just a zip file.

The library just calls the .exe of 7zip, so you could donwload the source and alter it to accept a password parameter which you then pass to the executable.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!