首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过输入错误的密码,sfx文件确实会被解压缩。

通过输入错误的密码,sfx文件确实会被解压缩。
EN

Stack Overflow用户
提问于 2014-03-02 09:35:40
回答 1查看 576关注 0票数 0

我有sfx文件的程序,我创建了使用7.zipSharp库。如果我使用错误的密码直接执行文件sfx,但仍然提取其中的文件大小为0字节时,如果有人应该添加另一种模式来实现“压缩”功能,那么当我执行文件sfx时,错误的密码文件根本不会被提取出来。

压缩代码:

代码语言:javascript
复制
public void Compress()
{
   SevenZipCompressor.SetLibraryPath("7z.dll");
   SevenZipCompressor cmp = new SevenZipCompressor();
   cmp.Compressing += new EventHandler<ProgressEventArgs>(cmp_Compressing);
   cmp.FileCompressionStarted += new EventHandler<FileNameEventArgs>(cmp_StartCompress);
   cmp.CompressionFinished += new EventHandler<EventArgs>(cmp_CompleteCompressed);
   cmp.ArchiveFormat = OutArchiveFormat.SevenZip;
   cmp.CompressionLevel = CompressionLevel.Normal;
   cmp.CompressionMethod = CompressionMethod.Lzma;
   cmp.CompressionMode = CompressionMode.Create;
   string password = txtPasswordEn.Text;
   string DirFile = tempFolder;
   string NameFileCompress = Path.Combine(txtOutputFileEn.Text, txtNameFile.Text) + (".zip");
   cmp.BeginCompressDirectory(DirFile, NameFileCompress, password, ".",true);
}

创建SFX代码:

代码语言:javascript
复制
public void CreateSfx()
{  
    string location = Path.Combine(txtOutputFileEn.Text, txtNameFile.Text);
    string nameZip = location + (".zip");
    string nameExe = location + (".exe");
    SfxModule mdl = SfxModule.Extended;
    SevenZipSfx sfx = new SevenZipSfx(mdl);
    sfx.ModuleFileName = @"7z.sfx";
    sfx.MakeSfx(nameZip, nameExe);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-02 10:51:28

我刚刚看到,您创建的不是.zip文件,而是.7z文件(然后将其转换为自解压缩存档)。

对于该文件格式,可以使用EncryptHeaders属性实现文件名加密:

代码语言:javascript
复制
cmp.EncryptHeaders = true;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22125973

复制
相关文章

相似问题

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