使用zip32.dll,ZIP32J.DLL,UNZIP32.DLL进行压缩和解压zip文件

首先,需要准备好题目中必须得的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)
   
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
7-ZIP32.DLL 是一个供第三方软件调用进行压缩7z 或解压7z 的动态链接库。 2014/6/25 Version 9.22.00.01 新增的API。 (SevenZipGetLastError) 新增的API。 (SevenZipSfxConfigDialog) 新增的API。 (SevenZipSfxFileStoring) 支持长路径名。 (仅适用于基于NT的,在某种程度上是7-zip的本家兼容) 更改为返回FALSE,如果密码是错误指定CHECKARCHIVE_FULLCRC标志SevenZipCheckArchive。 加强错误处理。固定在没有返回现场应该返回一些错误。 定,如果缓冲区耗尽SevenZipGetArcFileName等来返回一个错误。 SevenZipGetMethod的略作修改的规范。相应的缓冲区不足的时间变化。 支持M_CHECK_FILENAME_ONLY国旗和M_CHECK_ALL_PATH在SevenZipOpenArchive。固定M_CHECK_FILENAME_ONLY的(“-R-”),是一个M_CHECK_ALL_PATH(“-R”)的默认状态。还可以支持(“-R0”)通过使用在同一时间的两个标志。 修正了无法显示的密码窗口时没有任何窗口的应用程序处理加密文件中的错误。 固定有在那里当然对话框的处理速度的项目显示100倍的情况。 修正了SevenZipGetArcAccessTimeEx必须得到更新的日期和时间的错误。 未安装-SLP到非支持的DLL,就像因此不能使用开关,一旦7-Zip文件管理器。 (您可以使用) 重建在7-ZIP9.22。 - 我可以在MF= FilterID开关指定压缩过滤器。下面的例子。 A-MF= BCJ2 a.7z a.tar A-MF=三角洲:4 a.7z a.wav A-MF= BCJ a.tar.xz a.tar - 我可以用最好的4GB内存在64位版本的Windows。 - 修正了几个错误。...
当两分支进入右半平面时,系统的极点必须在虚轴的右侧,即s=±jω的形式,其中ω为实数。 根据Routh-Hurwitz准则,当系统的某一行全部元素都为正时,该行对应的方程的根必须都在虚轴的左侧,为了让根在虚轴的右侧,我们需要调整K的值。 首先,将传递函数G(s)化简为标准形式: G(s) = K(s + 8)/(s^3 + 10s^2 + 32s) 然后,我们可以通过将K逐渐增加来找到两个分支进入右半平面时的K值。具体来说,我们可以使用Routh-Hurwitz准则,找到满足s=±jω的方程,然后观察它们的系数,以确定K的取值范围。 将s=±jω代入传递函数G(s)中,得到: G(jω) = K(jω + 8)/(-ω^3 + 10jω^2 + 32jω) G(-jω) = K(-jω + 8)/(-ω^3 - 10jω^2 - 32jω) 根据Routh-Hurwitz准则,当系统的某一行全部元素都为正时,该行对应的方程的根必须都在虚轴的左侧。因此,我们需要找到方程的根落在虚轴右侧的情况。 对于G(jω)来说,当其分母为0时,即 -ω^3 + 10jω^2 + 32jω = 0 我们可以将其分解为 jω(-ω^2 + 10jω + 32) = 0 解得 ω = 0, -5 ± 3j 因此,当ω = 5时,G(jω)的分母为负,此时K应该小于0;当ω = 3时,G(jω)的分母为正,此时K应该大于0。因此,K的取值范围为0 < K < ∞。 对于G(-jω)来说,当其分母为0时,即 -ω^3 - 10jω^2 - 32jω = 0 我们可以将其分解为 jω(-ω^2 - 10jω - 32) = 0 解得 ω = 0, -5 ∓ 3j 因此,当ω = 5时,G(-jω)的分母为负,此时K应该小于0;当ω = 3时,G(-jω)的分母为正,此时K应该大于0。因此,K的取值范围为0 < K < ∞。 综上所述,当两个分支都进入右半平面时,K的取值范围为0 < K < ∞。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值