SevenZSharp解码与密码

本文关键字:密码 解码 SevenZSharp | 更新日期: 2023-09-27 18:14:01

我从这里开始使用SevenZSharp

解码文件我使用:

CompressionEngine.Current.Decoder.DecodeIntoDirectory(@"D:'target'host_update.7z", @"D:'target");

但我没有信息如何解码。7z文件与密码!?请帮帮我。由于

SevenZSharp解码与密码

使用支持密码和多种格式的"SevenZipSharp"…

将SevenZipSharp.dll导入.Net项目引用…

将"7zx64.dll"answers"7z.dll"放入目录…

然后使用此代码检查通过并提取正确的…

Imports SevenZip
Public Class FrmMain
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Btn1.Click
    ''Call to set DLL depending on processor type''
    If Environment.Is64BitProcess Then
        SevenZip.SevenZipCompressor.SetLibraryPath("7zx64.dll")
    Else
        SevenZip.SevenZipCompressor.SetLibraryPath("7z.dll")
    End If
    ''Set Destination of extraction''
    Dim DestDir = Application.StartupPath
    Try
        ''Check file with password''
        Dim Ext As New SevenZipExtractor(Tb1.Text, Tb2.Text)
        If Ext.Check() Then
            ''Extract files to destination''
            Ext.BeginExtractArchive(DestDir)
        End If
    Catch ex As Exception
        MessageBox.Show(ex.ToString())
    End Try
End Sub
End Class

从SevenZSharp的源代码来看,它不支持密码保护的文件。

codeplex还有一些其他的东西可以帮助你。它似乎有一个叫做ICryptoGetTextPassword的接口,如果7z有密码保护,你可能可以使用它。

编辑

进一步看一下SevenZipSharp,它似乎应该支持密码保护档案,根据他们的项目页面(http://sevenzipsharp.codeplex.com/):

  • 支持加密和密码

您需要从Codeplex下载最新的代码并自己构建它,在其中您将有一个名为SevenZipExtractor的类,其中有以下构造函数:

/// <summary>
/// Initializes a new instance of SevenZipExtractor class.
/// </summary>
/// <param name="archiveFullName">The archive full file name.</param>
/// <param name="password">Password for an encrypted archive.</param>
public SevenZipExtractor(string archiveFullName, string password)
    : base(password)
{
    Init(archiveFullName);
}

注意这与Seven7Sharp不同,这是SevenZipSharp,但它适用于7z