2010-07-08 111 views

回答

4

而不是你需要的二进制版本源代码。

这可以得到LZMA SDK

在那里您会找到一个文件夹CS,其中包含C#实现的7zip文件算法。

4

很多答案上面给出的,但我用这个下面提及的代码压缩或使用7zip的

解压缩文件,则必须在系统中有7zip的应用。

 public void ExtractFile(string source, string destination) 
     { 
      // If the directory doesn't exist, create it. 
      if (!Directory.Exists(destination)) 
       Directory.CreateDirectory(destination); 

      string zPath = @"C:\Program Files\7-Zip\7zG.exe"; 
// change the path and give yours 
      try 
      { 
       ProcessStartInfo pro = new ProcessStartInfo(); 
       pro.WindowStyle = ProcessWindowStyle.Hidden; 
       pro.FileName = zPath; 
       pro.Arguments = "x \"" + source + "\" -o" + destination; 
       Process x = Process.Start(pro); 
       x.WaitForExit(); 
      } 
      catch (System.Exception Ex) { 
       //DO logic here 
       } 
     } 

创建压缩文件

public void CreateZip() 
{ 
    string sourceName = @"d:\a\example.txt"; 
    string targetName = @"d:\a\123.zip"; 
    ProcessStartInfo p = new ProcessStartInfo(); 
    p.FileName = @"C:\Program Files\7-Zip\7zG.exe"; 
    p.Arguments = "a -tgzip \"" + targetName + "\" \"" + sourceName + "\" -mx=9"; 
    p.WindowStyle = ProcessWindowStyle.Hidden; 
    Process x = Process.Start(p); 
    x.WaitForExit(); 
} 
+0

这是我正在处理的一个项目。起初,我从7-zip网站下载了LZMA SDK,并使用Pavlov的C#库编写了一些代码进行压缩。工作很棒!然后我意识到我手上只有单独的LZMA文件,而不是7z的存档文件。 Pavlov没有为此提供任何C#库。所以我只是决定只是对7z.exe进行一个进程调用是最简单的。谢谢你的样品,这将使我开始。 – 2015-11-25 20:15:48