首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SevenZipSharp库:无法加密头

SevenZipSharp库:无法加密头
EN

Stack Overflow用户
提问于 2013-01-14 23:59:13
回答 1查看 908关注 0票数 0

我的任务是使用SevenZipSharp库创建受密码保护的邮政编码。

我设法使文件内容锁定与密码,但归档结构-文件名,目录层次结构可以在任何WinZip,7-Zip或压缩文件夹中查看。

我使用cmp.EncryptHeaders = true;,但是它似乎没有任何效果……

如何加密文件和目录名?谢谢。

代码语言:javascript
复制
    static void Main(string[] args)
    {
        const string LibraryPath = @"C:\Program Files\7-Zip\7z.dll";
        SevenZipCompressor.SetLibraryPath(LibraryPath);

        var cmp = new SevenZipCompressor();
        cmp.CompressionMethod = CompressionMethod.Default;
        cmp.CompressionLevel = CompressionLevel.Fast;
        cmp.ArchiveFormat = OutArchiveFormat.Zip;  // compatible with WinZip and Compressed folder
        cmp.ZipEncryptionMethod = ZipEncryptionMethod.ZipCrypto;  // compatible with old WinZip
        cmp.EncryptHeaders = true;

        cmp.FileCompressionStarted += (sender, e) =>
        {
            Console.WriteLine(((FileNameEventArgs)e).FileName);
        };

        const string archive = @"C:\temp\12.3G.zip";
        File.Delete(archive);
        cmp.CompressDirectory(@"C:\temp\Photos", archive, "password");
    }
EN

回答 1

Stack Overflow用户

发布于 2013-01-15 00:07:14

查看源代码,似乎该标志生效的唯一方法是对OutArchiveFormat使用SevenZip

从源代码中:

代码语言:javascript
复制
if (EncryptHeaders && _archiveFormat == OutArchiveFormat.SevenZip && !SwitchIsInCustomParameters("he"))
{
    names.Add(Marshal.StringToBSTR("he"));
    var tmp = new PropVariant {VarType = VarEnum.VT_BSTR, Value = Marshal.StringToBSTR("on")};
    values.Add(tmp);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14321964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档