处理sevenzipsharp 检查密码函数的Bug
2016-04-10 21:20
330 查看
using (SevenZipExtractor extr = new SevenZipExtractor(tbPackagePath.Text, "www.pc6.com")) { if (extr.Check()) { MessageBox.Show("密码正确"); } else { MessageBox.Show("密码不正确"); } }
这一段是检查压缩包密码是否正确,发现360压缩的zip,不管正不正确,都返回true,
修改以下源码(ArchiveExtractCallback.cs),避免此错误
public void SetOperationResult(OperationResult operationResult) { if (operationResult != OperationResult.Ok && ReportErrors) { switch (operationResult) { case OperationResult.CrcError: AddException(new ExtractionFailedException("File is corrupted. Crc check has failed.")); break; case OperationResult.DataError: AddException(new ExtractionFailedException("File is corrupted. Data error has occured.")); break; case OperationResult.UnsupportedMethod: AddException(new ExtractionFailedException("Unsupported method error has occured.")); break; default: AddException(new ExtractionFailedException("An unknown error.")); break; } } else { if (_fileStream != null && !_fileIndex.HasValue) { try { _fileStream.BytesWritten -= IntEventArgsHandler; _fileStream.Dispose(); } catch (ObjectDisposedException) { } _fileStream = null; GC.Collect(); GC.WaitForPendingFinalizers(); } var iea = new FileInfoEventArgs( _extractor.ArchiveFileData[_currentIndex], PercentDoneEventArgs.ProducePercentDone(_doneRate)); OnFileExtractionFinished(iea); if (iea.Cancel) { Canceled = true; } } }
相关文章推荐
- embed 隐藏播放器显示
- 移除网站未使用到的样式
- Android 博客周刊13期
- Java NIO系列教程(一) Java NIO 概述
- 【机房重构】存储过程
- 020.php
- 20160410】嗯……省选两日游完了抒发一下感想 (讲道理这里可以抒情?【SCOI2016
- 【Trie】[CQOI2016]路由表
- samba服务器搭建
- 如何用netstat命令查看端口占用问题的技巧
- [架构]我眼中的Android架构
- Android学习(19) -- 数据存储之File (简单登录保存用户名和密码)
- sizeof()用法汇总
- Java NIO系列教程(二) Channel
- Servlet技术
- atitit.React 优缺点 相比angular react是最靠谱的web ui组件化方案了
- 019.php函数变量
- java中对象的比较
- UBUNTU 修改网卡名称 更改设备网卡名称 修改ENO16777736为ETH0 UBUNTU 15.10网卡名称为ENO16777736(http://www.cnphp6.com/archiv)
- atitit.React 优缺点 相比angular react是最靠谱的web ui组件化方案了