在c#代码中提取7zip

本文关键字:提取 7zip 代码 | 更新日期: 2023-09-27 18:13:30

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

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

,但我不知道如何使用它(-我可以创建。bat(.cmd)文件,但我需要通过dll文件)确切地说:我需要提取。7z文件与键)

在c#代码中提取7zip

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

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

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

别忘了在参数设置里写上Copy to Output Directory。

提取存档文件:

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归档dll

更新:另一个用户问了一个类似的问题:我如何用。net创建7-Zip存档?答案有几个与我提供的相同的链接,以及更多的链接。

看起来这个库不支持加密文件。

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

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

Aspose.ZIP可用于轻松提取zip文件。通过NuGet包管理器下载。

PM> Install-Package Aspose.Zip
下面的代码展示了如何使用c#以编程方式打开或提取7z文件:
using (SevenZipArchive archive = new SevenZipArchive("Sample.7z"))
{
    archive.ExtractToDirectory(dataDir + "Sample_ExtractionFolder");
}

下面的代码解释了如何使用c#以编程方式提取或解压缩密码保护的7zip文件:

using (SevenZipArchive archive = new SevenZipArchive("Sample_Encrypted.7z"))
{
    archive.ExtractToDirectory("Sample_Encrypted7zip", "password");
}

来源Farhan Raza的博客文章:https://blog.aspose.com/2021/04/28/open-extract-7zip-7z-file-unzip-in-csharp-asp-net/