为什么使用sfx sevenzipsharp解压时会出现“7-zip: unsupported method”的错误?

5

我创建了hallo.7z并使用7zxSD_LZMA.sfx作为模块。我认为我的配置是正确的,但在提取sfx时我收到了以下信息:

7-zip:不支持的方法

void CreateExeFile() 
{
    try
    {
        SfxModule mdl = SfxModule.Extended;
        SevenZipSfx sfx = new SevenZipSfx(mdl);

        sfx.ModuleFileName = @"7zxSD_LZMA.sfx";
        sfx.MakeSfx("D:\\hallo.7z",
                    new Dictionary<string, string> 
            { 
                { "Title", "Extract Files" }, 
                { "InstallPath", ProgramFilesx86() + "\\ATIG Platform" },
                { "BeginPrompt", "Choose directory },
                { "CancelPrompt", "Extract Now" },
                { "OverwriteMode", "0" },
                { "GUIMode", "1" },
                { "ExtractDialogText", "Process Extract" },
                { "ExtractTitle", "Extract Files" },
                { "ErrorTitle", "Error" }
            },
                    "D:\\hallo.exe");
        MessageBox.Show("Success !");
    }
    catch (IOException ex)
    {
        MessageBox.Show(this, ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}

static string ProgramFilesx86()
{
    if (8 == IntPtr.Size
        || (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432"))))
    {
        return Environment.GetEnvironmentVariable("ProgramFiles(x86)");
    }

    return Environment.GetEnvironmentVariable("ProgramFiles");
}

由于使用了密码,7zxSD_LZMA.sfx和7zxSD_All无法运行提取操作。


这应该解决您的问题。 - captain_majid
2个回答

14

我明白为什么会显示这样。我也遇到过这种情况。这是我发现的原因:此SFX模块不支持LZMA2档案格式,只支持LZMA档案格式。因此,您需要将档案重建为LZMA格式。

祝好:)


0
在Windows上的另一个原因是由于路径长度限制。如果您的存档包含文件,解压缩后的路径长度大于260个字符(Windows中的最大值),则会出现相同的错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接