码迷,mamicode.com
首页 > 其他好文 > 详细

7z.dll解压缩

时间:2018-01-29 15:32:17      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:exce   ted   密码   解压   sys   hive   压缩   存在   line   

代码中需引用SevenZipSharp.dll,项目路径下需存在7z.dll

public static string UnCompress7zZip(string str待解压文件, string str解压文件夹, string str密码=null)
{
String str7zRunPath = System.Windows.Forms.Application.StartupPath + @"\7z.dll";

if (!File.Exists(str7zRunPath))
{
return "7z.dll文件不存在!";
}
if (!File.Exists(str待解压文件))
{
return "待解压文件不存在!";
}
bool flag = false;
FileStream stream = new FileStream(str待解压文件, FileMode.Open, FileAccess.Read);
int num = stream.ReadByte();
stream.Close();
if ((num != 80) && (num != 0x52))
{
flag = true;
string destFileName = string.Format("{0}{1}{2}", Path.GetTempPath(), Guid.NewGuid().ToString(), ".zip");
Common_File.FileCopy(str待解压文件, destFileName, true);
Common_File.FileSetAttributes(destFileName, FileAttributes.Normal);
FileStream stream2 = new FileStream(destFileName, FileMode.Open);
stream2.WriteByte(80);
stream2.Close();
str待解压文件 = destFileName;
}
stream.Close();
SevenZip.SevenZipBase.SetLibraryPath(str7zRunPath);
try
{
SevenZip.SevenZipExtractor extractor;
if (string.IsNullOrEmpty(str密码))
{
extractor = new SevenZip.SevenZipExtractor(str待解压文件);
}
else
{
extractor = new SevenZip.SevenZipExtractor(str待解压文件, str密码);
}
if (!extractor.Check())
{
return "无效的压缩文件!";
}
if (!Directory.Exists(str解压文件夹))
{
Directory.CreateDirectory(str解压文件夹);
}
extractor.ExtractArchive(str解压文件夹);
extractor.Dispose();
if (flag)
{
HopeBid.Model.Common_File.FileDelete(str待解压文件);
}
return string.Empty;
}
catch (Exception exception)
{
return string.Format("解压缩异常:{0}" + Environment.NewLine + "待解压文件:{1}" + Environment.NewLine + "解压文件夹:{2}", exception.Message, str待解压文件, str解压文件夹);
}
}

7z.dll解压缩

标签:exce   ted   密码   解压   sys   hive   压缩   存在   line   

原文地址:https://www.cnblogs.com/sunshuai/p/8376025.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!