/// <summary>解凍処理</summary>
        private void btnDecomp_Click(object sender, EventArgs e)
        {
            try
            {
                // チェック処理
                this.CheckComp_DeComp();

                // 解凍部品
                UnZipper uz = new UnZipper();

                // 選択基準
                string[] exts = null;
                Zipper.SelectionDelegate scd = null;

                if (this.txtExt.Enabled)
                {
                    exts = this.txtExt.Text.Split(',');
                    scd  = Program.SelectionCriteriaDlgt2;
                }

                // 解凍時、上書き制御
                uz.ExtractProgress = Program.MyExtractProgressEventHandler;

                // 解凍(1)デリゲートでフィルタ
                uz.ExtractFileFromZip(
                    this.txtFile.Text, this.txtFolder.Text, scd, exts,
                    (ExtractExistingFileAction)this.cmbEEFA.SelectedItem,
                    Encoding.GetEncoding((string)this.cmbEnc.SelectedItem),
                    this.txtPass.Text);

                //// 解凍(2):selectionCriteriaStringでフィルタ
                //string selectionCriteriaString = "";
                //if (exts != null)
                //{
                //    foreach (string ext in exts)
                //    {
                //        if (selectionCriteriaString == "")
                //        {
                //            selectionCriteriaString = "name != *." + ext;
                //        }
                //        else
                //        {
                //            selectionCriteriaString += " and name != *." + ext;
                //        }
                //    }
                //}

                //uz.ExtractFileFromZip(
                //    this.txtFile.Text,
                //    this.txtFolder.Text,
                //    selectionCriteriaString,
                //    (ExtractExistingFileAction)this.cmbEEFA.SelectedItem,
                //    Encoding.GetEncoding((string)this.cmbEnc.SelectedItem),
                //    this.txtPass.Text);

                //MessageBox.Show(uz.StatusMSG, "サマリ",
                //    MessageBoxButtons.OK, MessageBoxIcon.Information);

                //CustMsgBox custMsgBox = new CustMsgBox("サマリ(解凍)", uz.StatusMSG, SystemIcons.Information);
                //For internationalization, Replaced all the Japanese language to ResourceMgr.GetString() method call
                CustMsgBox custMsgBox = new CustMsgBox(ResourceMgr.GetString("Error0003"), uz.StatusMSG, SystemIcons.Information);
                custMsgBox.ShowDialog();
            }
            catch (Exception ex)
            {
                //MessageBox.Show(ex.Message, "エラーが発生しました。", MessageBoxButtons.OK, MessageBoxIcon.Error);
                //For internationalization, Replaced all the Japanese language to ResourceMgr.GetString() method call
                MessageBox.Show(ex.Message, ResourceMgr.GetString("E0001"), MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        /// <summary>圧縮処理</summary>
        private void btnCompress_Click(object sender, EventArgs e)
        {
            try
            {
                // チェック処理
                this.CheckComp_DeComp();

                // 圧縮部品
                Zipper z = new Zipper();

                // 選択基準
                string[] exts = null;
                Zipper.SelectionDelegate scd = null;

                if (this.txtExt.Enabled)
                {
                    exts = this.txtExt.Text.Split(',');
                    scd  = Program.SelectionCriteriaDlgt1;
                }

                // 形式指定
                SelfExtractorFlavor?selfEx = null;

                if (this.cmbFormat.Enabled)
                {
                    selfEx = (SelfExtractorFlavor)this.cmbFormat.SelectedItem;
                }

                // ZIP内パスのルート名
                string[] temp = this.txtFile.Text.Split('\\');

                // 進捗報告処理
                z.SaveProgress = Program.MySaveProgressEventHandler;

                // ルートのディレクトリを作るか作らないか。
                string rootPathInArchive = "";

                if (!this.cbxRootDir.Checked)
                {
                    rootPathInArchive = temp[temp.Length - 1];
                }

                // 圧縮(1)デリゲートでフィルタ
                z.CreateZipFromFolder(
                    this.txtFile.Text, this.txtFolder.Text,
                    scd, exts, rootPathInArchive, // ここを空文字列にするとルートフォルダ無しになる。
                    Encoding.GetEncoding((string)this.cmbEnc.SelectedItem),
                    (EncryptionAlgorithm)this.cmbCyp.SelectedItem, this.txtPass.Text,
                    (CompressionLevel)this.cmbCmpLv.SelectedItem, selfEx);

                //// 圧縮(2):selectionCriteriaStringでフィルタ
                //string selectionCriteriaString = "";
                //if (exts != null)
                //{
                //    foreach (string ext in exts)
                //    {
                //        if (selectionCriteriaString == "")
                //        {
                //            selectionCriteriaString = "name != *." + ext;
                //        }
                //        else
                //        {
                //            selectionCriteriaString += " and name != *." + ext;
                //        }
                //    }
                //}

                //z.CreateZipFromFolder(
                //    this.txtFile.Text, this.txtFolder.Text,
                //    selectionCriteriaString,
                //    temp[temp.Length - 1],
                //    Encoding.GetEncoding((string)this.cmbEnc.SelectedItem),
                //    (EncryptionAlgorithm)this.cmbCyp.SelectedItem, this.txtPass.Text,
                //    (CompressionLevel)this.cmbCmpLv.SelectedItem, selfEx);

                //MessageBox.Show(z.StatusMSG,"サマリ",
                //    MessageBoxButtons.OK, MessageBoxIcon.Information);

                CustMsgBox custMsgBox = new CustMsgBox(ResourceMgr.GetString("Error0002"), z.StatusMSG, SystemIcons.Information);
                custMsgBox.ShowDialog();
            }
            catch (Exception ex)
            {
                //MessageBox.Show(ex.Message, "エラーが発生しました。", MessageBoxButtons.OK, MessageBoxIcon.Error);
                //For internationalization, Replaced all the Japanese language to ResourceMgr.GetString() method call
                MessageBox.Show(ex.Message, ResourceMgr.GetString("E0001"), MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }