1、首先将7z.dll、7z.exe、7zFM.exe、7zG.exe放入到项目中某一文件夹下
2、当文件极限压缩
public static string ZipFile(string fileName, string zipFileName)
{
path = "";
try
{
string zipPara;
zipPara = "a \"" + zipFileName + "\" " + " \"" + fileName + "\" -mx9 -m0=LZMA:d=27 -ms=2048m -mmt=2";
if (File.Exists(zipFileName)) //判断压缩文件是否存在,如果存在就删除掉
{
File.Delete(zipFileName);
}
if (!SeventZPrcess(zipPara))
{
return path;
}
return path = zipFileName;
}
catch
{
return path;
}
}
3、当文件解压
/// 解压缩文件(解压后不带目录)
/// <summary>
/// 解压缩文件(解压后不带目录)
/// </summary>
/// <param name="zipFileName">压缩文件名</param>
/// <param name="unzipPath">解压缩后文件的路径</param>
/// <returns>返回值true:成功 false:失败</returns>
public static bool UnZipFile(string zipFileName, string unZipPath)
{
try
{
string arguments = " e -y \"" + zipFileName + "\" -o\"" + unZipPath + "\"";
return SeventZPrcess(arguments);
}
catch
{
return false;
}
}
4、开启7z.exe进程
public static bool SeventZPrcess(string arguments)
{
Process winrarPro = new System.Diagnostics.Process();
winrarPro.StartInfo.WindowStyle = ProcessWindowStyle.Minimized; //隐藏压缩窗口
winrarPro.StartInfo.FileName = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "7z\\7z.exe"; //System.Windows.Forms.Application.StartupPath + "\\7z.exe";
winrarPro.StartInfo.CreateNoWindow = false;
winrarPro.StartInfo.Arguments = arguments;
winrarPro.Start();
winrarPro.WaitForExit();
int iExitCode = 0;
if (winrarPro.HasExited)
{
iExitCode = winrarPro.ExitCode;
winrarPro.Close();
if (iExitCode != 0 && iExitCode != 1)
{
return false;
}
}
return true;
}