Anywhere you go, let me go too

關於部落格
對人海闊天空,做事仔細周密
----------------------
因為改了平台後...覺得不是很好用....所以有另外......(評估中)
http://blog.xuite.net/king119wang/myskills
  • 32543

    累積人氣

  • 2

    今日人氣

    0

    訂閱人氣

透過C#將含密碼壓縮檔進行解壓動作

大都推薦使用SharpZipLib元件,所以就配合去下載http://www.icsharpcode.net/
有說明文件,有Api原始碼,還有測試範例程式碼。
但很怪下載的chm檔,只看得到index內容都看不到 :(
只看去看code了,試了一下驗密碼正確性功能,改寫了一下
  /// <summary>
        /// 檢核待解壓使用密碼是否正確
        /// </summary>
        /// <param name="sZipPath">Zip檔存放路徑</param>
        /// <param name="sPwd">密碼</param>
        /// <returns></returns>
        private int isCheckZipPwd(string sZipPath,string sPwd) {
            int iResult = -1;
            bool flag = false;
            try
            {
                using (MemoryStream ms = new MemoryStream(File.ReadAllBytes(sZipPath)))
                {
                    using (ZipFile zipFile = new ZipFile(ms))
                    {
                        zipFile.Password = sPwd;
                        flag = zipFile.TestArchive(true);
                        if (flag == false)
                        {
                            iResult = -1; //密碼不正確
                        } else {
                            iResult = 0;  //密碼正確
                        }
                    }
                }
            }catch(Exception ex){
                iResult = -3; //異常
                //sErrMsg = "isCheckZipPwd()異常:"+ex.Message;
            }
            return iResult;
        }
=======================================================
接下來就是要進行解壓了~ 沒有說明文件,而且source code又一堆,
實在沒有什麼心力/時間一一去try ~
只好再求助G博士,找到一篇http://www.iwms.net/n1413c13.aspx
但他沒有加驗證密碼,所以我就只再加上一段code ,如下
  ZipInputStream objZipInputStream = new ZipInputStream(File.OpenRead(sSrcZipPath));
                if (password != null && !password.Equals(""))
                {
                        objZipInputStream.Password = password;
                }
即可順利加入密碼檢核^^
相簿設定
標籤設定
相簿狀態