首先,需要准备好题目中必须得的3个dll文件。可以在网络中搜索并下载。
然后,我习惯把他们放在工程的debug目录下。
以下是代码:
public static class ZipManager
{
//锁定对象
private static readonly object m_oLockObject = new object();
//ZIP解压缩
[DllImport("Unzip32")]
private extern static int UnZip(int hwnd, string szCmdLine, StringBuilder szOutput, int dwSize);
//ZIP压缩
[DllImport("ZIP32J.DLL", CharSet = CharSet.Ansi)]
private extern static int Zip(IntPtr hwnd, string szCmdLine, StringBuilder szOutput, int dwSize);
/// <summary>
/// 解压指定的ZIP文件
/// </summary>
/// <param name="targetFile">解压文件</param>
/// <param name="destFolder">目标文件夹</param>
/// <returns>执行结果</returns>
public static long ExpandZip(string targetFile, string destFolder)
{
lock (m_oLockObject)
{
string command = "-xsoqq--i \"" + targetFile + "\" \"" + destFolder + "\\\"";
return UnZip(0, command, new StringBuilder(), 0);
}
}
/// <summary>
/// 解压指定的ZIP文件[指定密码]
/// </summary>
/// <param name="targetFile">解压文件</param>
/// <param name="destFolder">目标文件夹</param>
/// <param name="password">密码(半角英文数字)</param>
&nbs