使用7zip压缩文件的示例C#.net代码

时间:2010-07-08 12:47:25

标签: c# 7zip

我在C:\ Program文件的机器上安装了7-zip 4.65。我想在C#代码中使用它来压缩文件。文件名将由用户动态提供。任何人都可以提供一个如何在C#代码中使用7zip的示例代码吗?

5 个答案:

答案 0 :(得分:5)

上面给出了很多答案,但我使用下面提到的代码来使用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 
              }
        }

创建zip文件

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

答案 1 :(得分:4)

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

这可以作为LZMA SDK

获取

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

答案 2 :(得分:3)

答案 3 :(得分:0)

答案 4 :(得分:0)

我想如果你想使用你在c:\ program files中安装的那个,你可以使用System.Diagnostics.Process来运行命令行应用程序 - http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx

传递参数也很容易。这里有很多例子 - http://www.c-sharpcorner.com/UploadFile/DipalChoksi/ShellCommandsInCS12032005042031AM/ShellCommandsInCS.aspx